BPM and SOA Paul Fremantle [email_address] CTO and Co-Founder, WSO2 VP, Apache Synapse
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
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
Business Process Management  Virtuous Circle Model Execute Monitor Innovate BPM
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
BPM and SOA BPM Long running co-ordination state SOA Stateless service interactions Applications, Databases, Legacy Persistent application state
Another way of looking at it BPM SOA
BPM – the icing on the SOA cake!
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
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
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
A quick introduction to the standards Business Process Modelling Notation (BPMN) A graphical modelling approach for BPM Akin to UML Not executable
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
Orchestration and Choreography
Orchestration vs Choreography http://blog.whatfettle.com/2005/02/16/choreography-vs-orchestration/
Orchestration vs Choreography Choreography is about the interactions between pools Orchestration is about the interaction within a pool
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
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; />
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)
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
BPELScript and SimPEL
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)
BPEL engines  (source Wikipedia)
Using the Eclipse BPEL editor Install from the Eclipse BPEL project http:// eclipse.org/bpel Update site http://download.eclipse.org/technology/bpel/update-site/
Eclipse BPEL Editor
Deploy to Apache ODE or WSO2 BPS
WSO2 BPS
BPS Process View
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
BPEL4People model
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
Questions
Resources BPM wikipedia entry http://en.wikipedia.org/wiki/Business_process_management BPEL wikipedia entry http://en.wikipedia.org/wiki/Business_Process_Execution_Language   Apache ODE http://ode.apache.org   WSO2 BPS http://wso2.org/projects/bps   BPEL4People and HumanTask http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=bpel4people   BPELScript http://bpelscript.org

Ssbpm

  • 1.
    BPM and SOAPaul Fremantle [email_address] CTO and Co-Founder, WSO2 VP, Apache Synapse
  • 2.
    Service Oriented ArchitectureSOA 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 ManagementBusiness 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 BPMfit 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 SOABPM Long running co-ordination state SOA Stateless service interactions Applications, Databases, Legacy Persistent application state
  • 7.
    Another way oflooking at it BPM SOA
  • 8.
    BPM – theicing on the SOA cake!
  • 9.
    Why? Building anSOA 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 – toomuch 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 BPMwork? 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 introductionto the standards Business Process Modelling Notation (BPMN) A graphical modelling approach for BPM Akin to UML Not executable
  • 13.
    BPMN Pools andswimlanes 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.
  • 15.
    Orchestration vs Choreographyhttp://blog.whatfettle.com/2005/02/16/choreography-vs-orchestration/
  • 16.
    Orchestration vs ChoreographyChoreography is about the interactions between pools Orchestration is about the interaction within a pool
  • 17.
    Executable business processesThere are many approaches to executable business processes: XPDL BPML YAWL jBPM WS-BPEL 1.1 BPEL 2.0 The industry standard
  • 18.
    BPEL Business ProcessExecution 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 relationshipbetween 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 BPELinstead 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.
  • 22.
    Executing Business ProcessesOnly 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 EclipseBPEL editor Install from the Eclipse BPEL project http:// eclipse.org/bpel Update site http://download.eclipse.org/technology/bpel/update-site/
  • 25.
  • 26.
    Deploy to ApacheODE or WSO2 BPS
  • 27.
  • 28.
  • 29.
    How do peoplefit 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.
  • 31.
    Monitoring Processes Akey 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.
  • 33.
    Resources BPM wikipediaentry http://en.wikipedia.org/wiki/Business_process_management BPEL wikipedia entry http://en.wikipedia.org/wiki/Business_Process_Execution_Language Apache ODE http://ode.apache.org WSO2 BPS http://wso2.org/projects/bps BPEL4People and HumanTask http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=bpel4people BPELScript http://bpelscript.org