SlideShare a Scribd company logo
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

More Related Content

PDF
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
PDF
2012 05 confess_camel_cloud_integration
PDF
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
PDF
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
ODP
ESB vs API management
PDF
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
PDF
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
PPT
Democratizing the Cloud with Open Source Cloud Development
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
2012 05 confess_camel_cloud_integration
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
ESB vs API management
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Democratizing the Cloud with Open Source Cloud Development

What's hot (20)

PPT
Build & Deploy Scalable Cloud Applications in Record Time
PDF
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
PPTX
OracleDeveloperMeetup - London 19-12-17
PDF
JavaOne 2015 Keynote Presentation
PDF
Integration patterns and practices for cloud and mobile computing
PPTX
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
PDF
IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015
PDF
Placement of BPM runtime components in an SOA environment
PDF
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
PPTX
UKOUG Journey To The Cloud - March 2017
PDF
MuCon 2015 - Microservices in Integration Architecture
PDF
XConf Coimbatore 2016 - Microservices Demystified
PPTX
Oracle integration cloud service (ICS) best practices learned from the field ...
PPTX
API Platform Cloud Service best practice - OOW17
PPTX
AWS DevDay Vienna - Automating building blocks choices you will face with con...
PPTX
Modern Enterprise integration Strategies
PDF
01 oracle application integration overview
PDF
Differentiating between web APIs, SOA, & integration …and why it matters
PPTX
Integrating cloud with existing IBM Systems
PPTX
Secrets of Custom API Policies on the Oracle API Platform
Build & Deploy Scalable Cloud Applications in Record Time
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
OracleDeveloperMeetup - London 19-12-17
JavaOne 2015 Keynote Presentation
Integration patterns and practices for cloud and mobile computing
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
IBM WebSphere Application Foundation Sessions at IBM InterConnect 2015
Placement of BPM runtime components in an SOA environment
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
UKOUG Journey To The Cloud - March 2017
MuCon 2015 - Microservices in Integration Architecture
XConf Coimbatore 2016 - Microservices Demystified
Oracle integration cloud service (ICS) best practices learned from the field ...
API Platform Cloud Service best practice - OOW17
AWS DevDay Vienna - Automating building blocks choices you will face with con...
Modern Enterprise integration Strategies
01 oracle application integration overview
Differentiating between web APIs, SOA, & integration …and why it matters
Integrating cloud with existing IBM Systems
Secrets of Custom API Policies on the Oracle API Platform
Ad

Viewers also liked (8)

PDF
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
PDF
Jax 2012-activiti-und-camel-presentation
PDF
camunda BPM + Apache Camel
PPT
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
ODP
Developing Microservices with Apache Camel
PDF
Introduction to ESB Architecture and Message Flow
PPT
IBM Websphere MQ Basic
PPTX
Microservices Best Practices
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
Jax 2012-activiti-und-camel-presentation
camunda BPM + Apache Camel
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Developing Microservices with Apache Camel
Introduction to ESB Architecture and Message Flow
IBM Websphere MQ Basic
Microservices Best Practices
Ad

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

PDF
20100223 bpmn
PDF
Business Process Management with BPMN & BPEL
PPT
Ssbpm
PPT
intro-to-bpm-2003-1223624702954442-8.ppt
PDF
Karim Baïna Benchmark bpm 2010
PPTX
Bpms, Putting Business In The Driver’S Seat
PDF
Nextgen Bpm End to End
PPTX
Bejug - Activiti in Action (part 1)
PPTX
Introduction to Business Process Management Suite
PDF
Business process management and eai
PDF
浅谈SAP NetWeaver BPM架构
PDF
2014 Pre-MSc-IS-5 Process Layer
PDF
Bpm the battle 6 juni visie presentaties
PPT
BPM & Workflow in the New Enterprise Architecture
PPT
BPM & Workflow in the New Enterprise Architecture
PDF
2. oracle bpm soa 11g - simple - unified - complete
PPTX
Demystifying BPM
PDF
A Practical Approach to Introducing BPM into the Enterprise
PPT
Enterprise Soa And Bpm
20100223 bpmn
Business Process Management with BPMN & BPEL
Ssbpm
intro-to-bpm-2003-1223624702954442-8.ppt
Karim Baïna Benchmark bpm 2010
Bpms, Putting Business In The Driver’S Seat
Nextgen Bpm End to End
Bejug - Activiti in Action (part 1)
Introduction to Business Process Management Suite
Business process management and eai
浅谈SAP NetWeaver BPM架构
2014 Pre-MSc-IS-5 Process Layer
Bpm the battle 6 juni visie presentaties
BPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise Architecture
2. oracle bpm soa 11g - simple - unified - complete
Demystifying BPM
A Practical Approach to Introducing BPM into the Enterprise
Enterprise Soa And Bpm

More from Kai Wähner (20)

PDF
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
PDF
When NOT to use Apache Kafka?
PDF
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
PDF
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
PDF
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
PDF
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
PDF
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
PDF
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
PDF
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
PDF
Apache Kafka in the Healthcare Industry
PDF
Apache Kafka in the Healthcare Industry
PDF
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
PDF
Kafka for Real-Time Replication between Edge and Hybrid Cloud
PDF
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
PDF
Apache Kafka Landscape for Automotive and Manufacturing
PDF
Kappa vs Lambda Architectures and Technology Comparison
PPTX
The Top 5 Apache Kafka Use Cases and Architectures in 2022
PDF
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
PDF
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
PDF
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
When NOT to use Apache Kafka?
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka Landscape for Automotive and Manufacturing
Kappa vs Lambda Architectures and Technology Comparison
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...

Recently uploaded (20)

PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation theory and applications.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25 Week I
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Programs and apps: productivity, graphics, security and other tools
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

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