Business Process Management (BPM)
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
BPEL
- BPEL is an XML language for describing business flows and sequences,which in themselves are services
- Usually generated from a tool (and BPMN)
<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
- 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
- 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?