Business Process Management (BPM)

From Training Material
Jump to navigation Jump to search


  • In SOA, services are typically parts of one or more distributed business processes
  • Main motivations for services come from business processes.

BPM vs BPM

  • Business process management usually refers to a technology-enabled means for companies to gain visibility and control over long-lived, multistep processes that span a wide range of systems and people in one or more organizations.
  • Business process modeling is a set of practices or tasks that companies can perform to visually depict or describe all the aspects of a business process, including its flow, control and decision points, triggers and conditions for activity execution, the context in which an activity runs, and associated resources.


BPM vs Workflow

  • A business process describes what has to be done (including input and output). It might include manual activities and might use any kinds of resources.
  • A workflow describes how a certain result can be reached. It looks further into the details of all the steps or activities.


Discovering BPM services

  • Top-down approach, you decompose a problem, system, or process into smaller chunks until you reach the level of (basic) services.
  • Bottom-up approach, you build business processes by composing services into more general chunks.
  • Agile, middle-ground


Business Process Modeling

A model is in fact just a representation of the process that allows companies to document, simulate, share, implement, evaluate, and continually improve their operations.


Using Business Process Modeling Tools

  • Intalio
  • ProcessMaker
  • Oracle BPA
  • ActiveBPM
  • Tibco
  • jBPM

Soa-bpm-modeling.jpg


BPEL

  • BPEL is an XML language for describing business flows and sequences,which in themselves are services
  • Usually generated from a tool (and BPMN)

Soa-bpel.png

 <invoke partnerLink="ncname" portType="qname" operation="ncname"
         inputVariable="ncname"? outputVariable="ncname"?
         standard-attributes>
    standard-elements
    ...
    <catch faultName="qname" faultVariable="ncname"?>*
       activity
    </catch>
    <catchAll>?
       activity
    </catchAll>
    ...
 </invoke>


BPEL Example

 <?xml version="1.0"?>
 <process name="changeAddress" ...>
   <variables>
     <variable messageType="..." name="...">
   </variables>
   <flow>
     <receive .../>    <!– for this request (operation and input) -->
     <invoke .../>     <!– call other service -->
     <assign .../> <!– map data -->
     <reply .../>  <!– return data -->
   </flow>
 </process>


BPEL in Practise

  • To compose and/or orchestrate services, you need services
  • BPEL can be considered a business process assembler
  • BPEL has error-handling support
  • Data mappings


Orchestration

Soa-orchestration.png

  • There is one central controller that coordinates all the activities of the process.
  • You can apply the composite pattern, which means that the whole composition itself can be used as a service
  • Orchestra and the conductor


Choreography

Soa-choreography.png

  • Each party is responsible for one or more steps.
  • Nobody controls the process as a whole, and it might even be the case that nobody knows about or understands the process as a whole.
  • Roundabout


Orchestration vs Choreography

  • Orchestration depend on the “conductor”, hence it might not scale so well
  • Centralization in orchestration creates order and control
  • Choreography comes naturally and scale well, but there is no single entity responsible for the whole process
  • Choreography depends highly on two things: collaboration and the specification of some general rules so that the collaboration doesn’t lead to chaos.


Question

  • What does the BPM stand for?
  • What are the trades-offs in case of top-down and bottom-up approach
  • What is the BPEL?
  • How does the BPMN and BPEL relates?