CamelOne 2012 - BPM beyond Web Services

Kai Wähner
Kai WähnerTechnology Evangelist at Confluent
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, LinkedIn


www.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 Camel




www.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 Camel




www.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.“
                                              Wikipedia




www.mwea.de   Kai Wähner                      16.05.2012   Seite 9
Why BPM?

                                  increase efficiency
                                     better quality
      Business-IT-Alignment
                                     reduce costs
                              enable new business models




www.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          XPDL
WF-XML
                                   ARIS EPC
                    BPEL4People
www.mwea.de   Kai Wähner                16.05.2012   Seite 12
Standards




                            jPDL
        BPEL                          BPMN


                           BPM          XPDL
WF-XML
                                   ARIS EPC
                    BPEL4People
www.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.
                                                                  Wikipedia




www.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.0




www.mwea.de   Kai Wähner   16.05.2012   Seite 16
BPMN 2.0




              20-80 rule
www.mwea.de   Kai Wähner   16.05.2012   Seite 17
When to use BPM?



 •  long-running stateful workflows
 •  frequently changing processes
 •  human interaction




www.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 Camel




www.mwea.de    Kai Wähner                            16.05.2012   Seite 20
Alternatives for BPM




                                        BPM Suite
                               BPM
     No Tool
                            Framework
                                                                    Complexity of
                                                                    Orchestration
   Low                                              High




www.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. ProcessMaker



www.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
   •  embeddable




www.mwea.de   Kai Wähner             16.05.2012   Seite 23
Tool Stack




       Activiti Modeler         Activiti Designer



                      Process Engine

     camunda fox style           Activiti Explorer


www.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
                            ... more
www.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 Case


Start Event                        Service Task                  End Event


                   Script Task                    User Task




                       Automatic      Automatic     Manual




www.mwea.de   Kai Wähner                                      16.05.2012   Seite 29
Live Demo




                           Activiti in Action
www.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 Camel




www.mwea.de    Kai Wähner                            16.05.2012   Seite 31
Apache Camel




www.mwea.de   Kai Wähner   16.05.2012   Seite 32
Apache Camel




                           Come on, guys! We are at




www.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                                                          High




www.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-camel




www.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 Community
www.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 Camel




www.mwea.de    Kai Wähner                            16.05.2012   Seite 37
Apache Camel + Activiti




www.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 Solutions




www.mwea.de   Kai Wähner   16.05.2012   Seite 41
Separation of Concerns




www.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 integration




www.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=1028


www.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-box

www.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>

                                                           CamelContext

www.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 Community




www.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/blog




www.mwea.de        Kai Wähner
1 of 55

Recommended

Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja... by
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Kai Wähner
4.7K views62 slides
2012 05 confess_camel_cloud_integration by
2012 05 confess_camel_cloud_integration2012 05 confess_camel_cloud_integration
2012 05 confess_camel_cloud_integrationKai Wähner
2.1K views63 slides
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use? by
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?Kai Wähner
26.6K views80 slides
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente... by
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...Kai Wähner
11.2K views80 slides
ESB vs API management by
ESB vs API managementESB vs API management
ESB vs API managementAdroitLogic
8.8K views31 slides
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012 by
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Kai Wähner
11.2K views61 slides

More Related Content

What's hot

Build & Deploy Scalable Cloud Applications in Record Time by
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeRightScale
925 views31 slides
FaaS Meets Java EE: Developing Cloud Native Applications at Speed by
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedChris Bailey
395 views105 slides
OracleDeveloperMeetup - London 19-12-17 by
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17Phil Wilkins
907 views30 slides
JavaOne 2015 Keynote Presentation by
JavaOne 2015 Keynote PresentationJavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote Presentationibmwebspheresoftware
1.1K views40 slides
Integration patterns and practices for cloud and mobile computing by
Integration patterns and practices for cloud and mobile computingIntegration patterns and practices for cloud and mobile computing
Integration patterns and practices for cloud and mobile computingSHAKIL AKHTAR
3.6K views60 slides
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi... by
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Phil Wilkins
7.2K views32 slides

What's hot(20)

Build & Deploy Scalable Cloud Applications in Record Time by RightScale
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record Time
RightScale925 views
FaaS Meets Java EE: Developing Cloud Native Applications at Speed by Chris Bailey
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
Chris Bailey395 views
OracleDeveloperMeetup - London 19-12-17 by Phil Wilkins
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins907 views
Integration patterns and practices for cloud and mobile computing by SHAKIL AKHTAR
Integration patterns and practices for cloud and mobile computingIntegration patterns and practices for cloud and mobile computing
Integration patterns and practices for cloud and mobile computing
SHAKIL AKHTAR3.6K views
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi... by Phil Wilkins
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Phil Wilkins7.2K views
IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015 by ibmwebspheresoftware
IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015
IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015
ibmwebspheresoftware 16.2K views
Placement of BPM runtime components in an SOA environment by Kim Clark
Placement of BPM runtime components in an SOA environmentPlacement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environment
Kim Clark1.6K views
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),... by Kai Wähner
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
Kai Wähner43.1K views
UKOUG Journey To The Cloud - March 2017 by Phil Wilkins
UKOUG Journey To The Cloud - March 2017UKOUG Journey To The Cloud - March 2017
UKOUG Journey To The Cloud - March 2017
Phil Wilkins886 views
MuCon 2015 - Microservices in Integration Architecture by Kim Clark
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
Kim Clark5.8K views
XConf Coimbatore 2016 - Microservices Demystified by Thoughtworks
XConf Coimbatore 2016 - Microservices DemystifiedXConf Coimbatore 2016 - Microservices Demystified
XConf Coimbatore 2016 - Microservices Demystified
Thoughtworks1.2K views
Oracle integration cloud service (ICS) best practices learned from the field ... by Phil Wilkins
Oracle integration cloud service (ICS) best practices learned from the field ...Oracle integration cloud service (ICS) best practices learned from the field ...
Oracle integration cloud service (ICS) best practices learned from the field ...
Phil Wilkins13.9K views
API Platform Cloud Service best practice - OOW17 by Phil Wilkins
API Platform Cloud Service best practice - OOW17API Platform Cloud Service best practice - OOW17
API Platform Cloud Service best practice - OOW17
Phil Wilkins1.4K views
AWS DevDay Vienna - Automating building blocks choices you will face with con... by Cobus Bernard
AWS DevDay Vienna - Automating building blocks choices you will face with con...AWS DevDay Vienna - Automating building blocks choices you will face with con...
AWS DevDay Vienna - Automating building blocks choices you will face with con...
Cobus Bernard85 views
Modern Enterprise integration Strategies by Jesus Rodriguez
Modern Enterprise integration StrategiesModern Enterprise integration Strategies
Modern Enterprise integration Strategies
Jesus Rodriguez10.7K views
01 oracle application integration overview by nksolanki
01 oracle application integration overview01 oracle application integration overview
01 oracle application integration overview
nksolanki944 views
Differentiating between web APIs, SOA, & integration …and why it matters by Kim Clark
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
Kim Clark3.8K views
Integrating cloud with existing IBM Systems by BizTalk360
Integrating cloud with existing IBM SystemsIntegrating cloud with existing IBM Systems
Integrating cloud with existing IBM Systems
BizTalk3601.5K views
Secrets of Custom API Policies on the Oracle API Platform by Phil Wilkins
Secrets of Custom API Policies on the Oracle API PlatformSecrets of Custom API Policies on the Oracle API Platform
Secrets of Custom API Policies on the Oracle API Platform
Phil Wilkins1.2K views

Viewers also liked

WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f... by
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...WSO2
1.9K views25 slides
Jax 2012-activiti-und-camel-presentation by
Jax 2012-activiti-und-camel-presentationJax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationcamunda services GmbH
1.3K views30 slides
camunda BPM + Apache Camel by
camunda BPM + Apache Camelcamunda BPM + Apache Camel
camunda BPM + Apache Camelcamunda services GmbH
4.9K views35 slides
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp... by
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...Kai Wähner
34.3K views78 slides
Developing Microservices with Apache Camel by
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus Ibsen
6.8K views101 slides
Introduction to ESB Architecture and Message Flow by
Introduction to ESB Architecture and Message Flow Introduction to ESB Architecture and Message Flow
Introduction to ESB Architecture and Message Flow WSO2
5.5K views38 slides

Viewers also liked(8)

WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f... by WSO2
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO21.9K views
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp... by Kai Wähner
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Kai Wähner34.3K views
Developing Microservices with Apache Camel by Claus Ibsen
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
Claus Ibsen6.8K views
Introduction to ESB Architecture and Message Flow by WSO2
Introduction to ESB Architecture and Message Flow Introduction to ESB Architecture and Message Flow
Introduction to ESB Architecture and Message Flow
WSO25.5K views
Microservices Best Practices by MuleSoft
Microservices Best Practices Microservices Best Practices
Microservices Best Practices
MuleSoft3.9K views

Similar to CamelOne 2012 - BPM beyond Web Services

20100223 bpmn by
20100223 bpmn20100223 bpmn
20100223 bpmncamunda services GmbH
807 views46 slides
浅谈SAP NetWeaver BPM架构 by
浅谈SAP NetWeaver BPM架构浅谈SAP NetWeaver BPM架构
浅谈SAP NetWeaver BPM架构BPC流程社区
684 views9 slides
Nextgen Bpm End to End by
Nextgen Bpm End to EndNextgen Bpm End to End
Nextgen Bpm End to EndTechnoPeers
1.1K views38 slides
Creetion by
CreetionCreetion
Creetioncr0003
244 views33 slides
Creetion by
CreetionCreetion
Creetionwouterluijten
223 views33 slides
Creetion by
CreetionCreetion
CreetionHans Diepstraten
377 views33 slides

Similar to CamelOne 2012 - BPM beyond Web Services(20)

Nextgen Bpm End to End by TechnoPeers
Nextgen Bpm End to EndNextgen Bpm End to End
Nextgen Bpm End to End
TechnoPeers1.1K views
Creetion by cr0003
CreetionCreetion
Creetion
cr0003244 views
Presentatie Creetion by Bert Deterd
Presentatie CreetionPresentatie Creetion
Presentatie Creetion
Bert Deterd321 views
Introduction To Bpm Technology by myalya
Introduction To Bpm TechnologyIntroduction To Bpm Technology
Introduction To Bpm Technology
myalya1.8K views
Respond quickly to changing business needs–Business Process Management (BPM) by Carly Snodgrass
Respond quickly to changing business needs–Business Process Management (BPM)Respond quickly to changing business needs–Business Process Management (BPM)
Respond quickly to changing business needs–Business Process Management (BPM)
Carly Snodgrass1.2K views
BPM with Bonita Open Solution @AlpesJUG by Bonitasoft
BPM with Bonita Open Solution @AlpesJUGBPM with Bonita Open Solution @AlpesJUG
BPM with Bonita Open Solution @AlpesJUG
Bonitasoft2.9K views
Dynamic BPM by SSA KPI
Dynamic BPMDynamic BPM
Dynamic BPM
SSA KPI1.4K views
Oracle soa and e2.0 partner community forum bpm léon smiers share by Leon Smiers
Oracle soa and e2.0 partner community forum bpm léon smiers shareOracle soa and e2.0 partner community forum bpm léon smiers share
Oracle soa and e2.0 partner community forum bpm léon smiers share
Leon Smiers1.6K views
Business Process Managmenet & Intelligent BPM Suites by shyjusr
Business Process Managmenet & Intelligent BPM SuitesBusiness Process Managmenet & Intelligent BPM Suites
Business Process Managmenet & Intelligent BPM Suites
shyjusr1.2K views
Enterprise Soa And Bpm by Terry Cho
Enterprise Soa And BpmEnterprise Soa And Bpm
Enterprise Soa And Bpm
Terry Cho706 views
Current bpm trends tendencias en bpm by Denis Gagné
Current bpm trends   tendencias en bpmCurrent bpm trends   tendencias en bpm
Current bpm trends tendencias en bpm
Denis Gagné1.7K views
Introduction to Business Process Management Suite by Appian
Introduction to Business Process Management SuiteIntroduction to Business Process Management Suite
Introduction to Business Process Management Suite
Appian7.2K views
IBM Smarter Business 2012 - Headless BPM by IBM Sverige
IBM Smarter Business 2012 - Headless BPMIBM Smarter Business 2012 - Headless BPM
IBM Smarter Business 2012 - Headless BPM
IBM Sverige2.5K views

More from Kai Wähner

Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!) by
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)Kai Wähner
186 views51 slides
When NOT to use Apache Kafka? by
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?Kai Wähner
1.5K views12 slides
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse by
Kafka for Live Commerce to Transform the Retail and Shopping MetaverseKafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kafka for Live Commerce to Transform the Retail and Shopping MetaverseKai Wähner
144 views56 slides
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka by
The Heart of the Data Mesh Beats in Real-Time with Apache KafkaThe Heart of the Data Mesh Beats in Real-Time with Apache Kafka
The Heart of the Data Mesh Beats in Real-Time with Apache KafkaKai Wähner
2K views38 slides
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware by
Apache Kafka vs. Cloud-native iPaaS Integration Platform MiddlewareApache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Apache Kafka vs. Cloud-native iPaaS Integration Platform MiddlewareKai Wähner
531 views73 slides
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies? by
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Kai Wähner
362 views44 slides

More from Kai Wähner(20)

Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!) by Kai Wähner
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Kai Wähner186 views
When NOT to use Apache Kafka? by Kai Wähner
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
Kai Wähner1.5K views
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse by Kai Wähner
Kafka for Live Commerce to Transform the Retail and Shopping MetaverseKafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kai Wähner144 views
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka by Kai Wähner
The Heart of the Data Mesh Beats in Real-Time with Apache KafkaThe Heart of the Data Mesh Beats in Real-Time with Apache Kafka
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Kai Wähner2K views
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware by Kai Wähner
Apache Kafka vs. Cloud-native iPaaS Integration Platform MiddlewareApache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Kai Wähner531 views
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies? by Kai Wähner
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Kai Wähner362 views
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture by Kai Wähner
Serverless Kafka and Spark in a Multi-Cloud Lakehouse ArchitectureServerless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Kai Wähner1.9K views
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry by Kai Wähner
Data Streaming with Apache Kafka in the Defence and Cybersecurity IndustryData Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Kai Wähner754 views
Apache Kafka in the Healthcare Industry by Kai Wähner
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
Kai Wähner152 views
Apache Kafka in the Healthcare Industry by Kai Wähner
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
Kai Wähner2.2K views
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry by Kai Wähner
Apache Kafka for Real-time Supply Chainin the Food and Retail IndustryApache Kafka for Real-time Supply Chainin the Food and Retail Industry
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Kai Wähner223 views
Kafka for Real-Time Replication between Edge and Hybrid Cloud by Kai Wähner
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kai Wähner1.4K views
Apache Kafka Landscape for Automotive and Manufacturing by Kai Wähner
Apache Kafka Landscape for Automotive and ManufacturingApache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and Manufacturing
Kai Wähner169 views
Kappa vs Lambda Architectures and Technology Comparison by Kai Wähner
Kappa vs Lambda Architectures and Technology ComparisonKappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner1.1K views
The Top 5 Apache Kafka Use Cases and Architectures in 2022 by Kai Wähner
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Kai Wähner8.4K views
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures by Kai Wähner
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Kai Wähner331 views
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser... by Kai Wähner
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Kai Wähner354 views
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap... by Kai Wähner
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Kai Wähner414 views
Apache Kafka in the Transportation and Logistics by Kai Wähner
Apache Kafka in the Transportation and LogisticsApache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and Logistics
Kai Wähner862 views
Apache Kafka for Cybersecurity and SIEM / SOAR Modernization by Kai Wähner
Apache Kafka for Cybersecurity and SIEM / SOAR ModernizationApache Kafka for Cybersecurity and SIEM / SOAR Modernization
Apache Kafka for Cybersecurity and SIEM / SOAR Modernization
Kai Wähner872 views

Recently uploaded

.conf Go 2023 - Data analysis as a routine by
.conf Go 2023 - Data analysis as a routine.conf Go 2023 - Data analysis as a routine
.conf Go 2023 - Data analysis as a routineSplunk
90 views12 slides
SAP Automation Using Bar Code and FIORI.pdf by
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
19 views38 slides
Black and White Modern Science Presentation.pptx by
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptxmaryamkhalid2916
14 views21 slides
Java Platform Approach 1.0 - Picnic Meetup by
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic MeetupRick Ossendrijver
25 views39 slides
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...NUS-ISS
28 views35 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
113 views17 slides

Recently uploaded(20)

.conf Go 2023 - Data analysis as a routine by Splunk
.conf Go 2023 - Data analysis as a routine.conf Go 2023 - Data analysis as a routine
.conf Go 2023 - Data analysis as a routine
Splunk90 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291614 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views
Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price12 views
[2023] Putting the R! in R&D.pdf by Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex19 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2214 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software91 views
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica... by NUS-ISS
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
NUS-ISS15 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS32 views

CamelOne 2012 - BPM beyond Web Services

  • 1. BPM beyond Web Services + www.mwea.de Kai Wähner
  • 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, LinkedIn www.mwea.de Kai Wähner 16.05.2012 Seite 2
  • 3. What is the Key Message? www.mwea.de Kai Wähner 16.05.2012 Seite 3
  • 4. Key Messages BPM should be used for optimizing business processes! www.mwea.de Kai Wähner 16.05.2012 Seite 4
  • 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. 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. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 7
  • 8. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 8
  • 9. What is Business Process Management (BPM)? BPM attempts to improve processes continuously. It can therefore be described as a "process optimization process.“ Wikipedia www.mwea.de Kai Wähner 16.05.2012 Seite 9
  • 10. Why BPM? increase efficiency better quality Business-IT-Alignment reduce costs enable new business models www.mwea.de Kai Wähner 16.05.2012 Seite 10
  • 11. How to do BPM? www.mwea.de Kai Wähner 16.05.2012 Seite 11
  • 12. Standards jPDL BPEL BPMN BPM XPDL WF-XML ARIS EPC BPEL4People www.mwea.de Kai Wähner 16.05.2012 Seite 12
  • 13. Standards jPDL BPEL BPMN BPM XPDL WF-XML ARIS EPC BPEL4People www.mwea.de Kai Wähner 16.05.2012 Seite 13
  • 14. BPMN Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. Wikipedia www.mwea.de Kai Wähner 16.05.2012 Seite 14
  • 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. BPMN 2.0 www.mwea.de Kai Wähner 16.05.2012 Seite 16
  • 17. BPMN 2.0 20-80 rule www.mwea.de Kai Wähner 16.05.2012 Seite 17
  • 18. When to use BPM? •  long-running stateful workflows •  frequently changing processes •  human interaction www.mwea.de Kai Wähner 16.05.2012 Seite 18
  • 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. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 20
  • 21. Alternatives for BPM BPM Suite BPM No Tool Framework Complexity of Orchestration Low High www.mwea.de Kai Wähner 16.05.2012 Seite 21
  • 22. Alternatives for BPM BPM Suite BPM No Tool Framework Complexity of Orchestration Low High Activiti vs. JBoss jBPM vs. Bonita vs. ProcessMaker www.mwea.de Kai Wähner 16.05.2012 Seite 22
  • 23. What is Activiti? •  open source (Apache License) •  BPMN 2.0 process engine •  lightweight •  easy to use •  Java API •  developer-focused •  embeddable www.mwea.de Kai Wähner 16.05.2012 Seite 23
  • 24. Tool Stack Activiti Modeler Activiti Designer Process Engine camunda fox style Activiti Explorer www.mwea.de Kai Wähner 16.05.2012 Seite 24
  • 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. 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 ... more www.mwea.de Kai Wähner 16.05.2012 Seite 26
  • 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. 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. Use Case Start Event Service Task End Event Script Task User Task Automatic Automatic Manual www.mwea.de Kai Wähner 16.05.2012 Seite 29
  • 30. Live Demo Activiti in Action www.mwea.de Kai Wähner 16.05.2012 Seite 30
  • 31. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 31
  • 32. Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 32
  • 33. Apache Camel Come on, guys! We are at www.mwea.de Kai Wähner 16.05.2012 Seite 33
  • 34. Alternatives for Systems Integration Enterprise Service Bus Integration- (ESB) No Tool Framework Complexity of Integration Low High www.mwea.de Kai Wähner 16.05.2012 Seite 34
  • 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-camel www.mwea.de Kai Wähner 16.05.2012 Seite 35
  • 36. Why Apache Camel? •  Standardized Modeling •  Efficient Realization •  Developer-focused •  Automatic Testing •  Many Components •  Several DSLs •  Awesome Community www.mwea.de Kai Wähner 16.05.2012 Seite 36
  • 37. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camel www.mwea.de Kai Wähner 16.05.2012 Seite 37
  • 38. Apache Camel + Activiti www.mwea.de Kai Wähner 16.05.2012 Seite 38
  • 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. Reinventing the Wheel ... www.mwea.de Kai Wähner 16.05.2012 Seite 40
  • 41. Spaghetti Solutions www.mwea.de Kai Wähner 16.05.2012 Seite 41
  • 42. Separation of Concerns www.mwea.de Kai Wähner 16.05.2012 Seite 42
  • 43. Overlappings? Both can realize processes. Both can integrate services. www.mwea.de Kai Wähner 16.05.2012 Seite 43
  • 44. Overlappings? Both can realize processes. Both can integrate services. •  Support for long running stateful processes •  Human workflow integration www.mwea.de Kai Wähner 16.05.2012 Seite 44
  • 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=1028 www.mwea.de Kai Wähner 16.05.2012 Seite 45
  • 46. Activiti + Apache Camel + Both ... •  ... are lightweight •  ... are open source •  ... are developer-focused •  ... offer combination out-of-the-box www.mwea.de Kai Wähner 16.05.2012 Seite 46
  • 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> CamelContext www.mwea.de Kai Wähner 16.05.2012 Seite 47
  • 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. Live Demo Activiti and Apache Camel combined ... www.mwea.de Kai Wähner 16.05.2012 Seite 49
  • 50. Did you get the Key Message? www.mwea.de Kai Wähner 16.05.2012 Seite 50
  • 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. Did you get the Key Message? www.mwea.de Kai Wähner 16.05.2012 Seite 52
  • 53. Whet your appetite? www.mwea.de Kai Wähner 16.05.2012 Seite 53
  • 54. Become a Part of the Open Source Community www.mwea.de Kai Wähner 16.05.2012 Seite 54
  • 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/blog www.mwea.de Kai Wähner