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

No notes for slide


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