Your SlideShare is downloading. ×



Published on

Published in: Technology, Education

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. BPM and SOA Paul Fremantle [email_address] CTO and Co-Founder, WSO2 VP, Apache Synapse
  • 2. Service Oriented Architecture
    • SOA is the best practice for building distributed interconnected systems
      • Using well-defined interactions between systems
      • Moving from proprietary formats to open formats:
        • XML, HTTP, SOAP
      • Integration is dependent on external interfaces not on internal code
  • 3. Business Process Management
    • Business Process Management is:
    • Defining,
    • Executing, and
    • Monitoring
      • Business Processes
      • Typically long-running, stateful processes
    • What is a business process?
      • A process you need to run your business!
      • Any well-defined interaction between systems and people, triggered by events, using logical decision points, and with clearly defined flows
  • 4. Business Process Management Virtuous Circle Model Execute Monitor Innovate BPM
  • 5. How does BPM fit with SOA
    • Business Process Management needs to connect to ‘operations’
      • When processing an order, connect to the billing system and raise an invoice
      • When handling a problem ticket, connect to the ticket management system
      • Etc
    • These operations could be direct connection in-memory, but much more likely to be distributed
    • A service oriented architecture provides the best way to connect the BPM to the SOA
  • 6. BPM and SOA BPM Long running co-ordination state SOA Stateless service interactions Applications, Databases, Legacy Persistent application state
  • 7. Another way of looking at it BPM SOA
  • 8. BPM – the icing on the SOA cake!
  • 9. Why?
    • Building an SOA is an enabler
      • You enable the connections between applications
      • Applications can start to utilize data and services from other applications
    • Almost Everything useful to a business is a process
    • Creating new processes and improving existing processes is the only way to improve your business
    • Being agile is key
  • 10. Warning – too much icing!
    • Watch out for driving the service design too closely from the process design
      • Services end up very specific
      • One operation per service
      • Not re-usable
    • Example
      • Several processes share effectively common operations but each developed independently
      • No common services
    • How to avoid?
      • Refactor, iterate, and keep SOA focus
  • 11. How does BPM work?
    • Model
      • Create a visual map of your process
    • Refine
      • Convert that visual map into an executable process
    • Execute
      • Run that process
    • Monitor
      • Use built-in capabilities of the BPM platform to monitor the state of processes
  • 12. A quick introduction to the standards
    • Business Process Modelling Notation (BPMN)
      • A graphical modelling approach for BPM
      • Akin to UML
      • Not executable
  • 13. BPMN Pools and swimlanes Pool Swimlane Swimlane Pools represent different organizations A sequence cannot cross pools Messages can flow between pools Swimlanes represent different roles within an organization. Sequences can cross swimlanes
  • 14. Orchestration and Choreography
  • 15. Orchestration vs Choreography
  • 16. Orchestration vs Choreography
    • Choreography is about the interactions between pools
    • Orchestration is about the interaction within a pool
  • 17. Executable business processes
    • There are many approaches to executable business processes:
      • XPDL
      • BPML
      • YAWL
      • jBPM
      • WS-BPEL 1.1
      • BPEL 2.0
        • The industry standard
  • 18. BPEL
    • Business Process Execution Language 2.0
      • An executable XML language
      • With some graphical views (but not standardized)
      • Used by the major BPM vendors (IBM, Oracle, Apache ODE, WSO2, Intalio, ActiveVOS, etc)
    <sequence> <!-- Receive the initial request --> <receive partnerLink=&quot;partner&quot; portType=“p:PartnerPT&quot; operation=“approval&quot; variable=“approvalRequest&quot; createInstance=&quot;yes&quot; />
  • 19. Understanding the relationship between BPMN and BPEL
    • BPMN is like UML
      • Useful, especially as a higher level modeling approach
      • Allows formal modeling of processes by a business analyst
      • BPMN diagrams cannot be executed
        • BPMN 2.0 is looking to define a better path to execution
    • BPEL is like Java
      • Can be directly executed
      • Can be visualized using a graphical editor
      • Can be created using BPMN as a guide (refinement)
  • 20. Why use BPEL instead of Java?
    • 1. Managed execution
      • Because BPEL is a managed execution environment you can monitor the progress of processes
      • Stop, start, restart, inspect
    • 2. A well structured approach to long-running processes
      • Easy to build processes that stop, restart and interact with systems in asynchronous patterns
    • 3. Excellent support for transactions and compensation
      • Build clear logic for dealing with problems in long-running flows
    • 4. Visualizing the flows helps communicate between the sponsors and the coders
      • Managers, analysts and users can be taken through the logic and validate it
    • None of this is impossible in Java – you could use a framework to gain these benefits – but BPEL has it all in a simple package
  • 21. BPELScript and SimPEL
  • 22. Executing Business Processes
    • Only discussing BPEL-based approaches today
    • You need a BPEL editor (or great XML coding skills!)
    • Plus a BPEL engine
      • There are many, both commercial and Open Source
      • The ones that I come across most are (in no particular order)
        • Microsoft Biztalk
        • Oracle BPEL Process Manager
        • IBM WebSphere Process Server
        • Apache ODE (Intalio, WSO2, JBoss)
  • 23. BPEL engines (source Wikipedia)
  • 24. Using the Eclipse BPEL editor
    • Install from the Eclipse BPEL project
      • http://
    • Update site
  • 25. Eclipse BPEL Editor
  • 26. Deploy to Apache ODE or WSO2 BPS
  • 27. WSO2 BPS
  • 28. BPS Process View
  • 29. How do people fit into BPEL?
    • Many processes interact with people
    • With pure BPEL you can interact with people
      • But you have to do the work
      • Integrate a portal with a process server
    • Two new specs help out massively
      • WS-HumanTask
      • BPEL4People
    • Patterns:
      • 4-eyes
      • Escalation
      • Nomination
      • Chained execution
  • 30. BPEL4People model
  • 31. Monitoring Processes
    • A key benefit of BPM
    • Can range from:
      • Simple stats on processes
      • Inspect individual instances
      • View overall flows across a process map
      • Building custom business reports on specific measures
        • E.g. Sales / hour over the last week
  • 32. Questions
  • 33. Resources
    • BPM wikipedia entry
    • BPEL wikipedia entry
    • Apache ODE
    • WSO2 BPS
    • BPEL4People and HumanTask
    • BPELScript