I've been doing a lot of research lately around these two and come to some sort of thoughts about them. There seems to be a huge amount of confusion particularly that Workflow is BPEL and BPEL is Workflow - that’s just not true. For my part I think its best if I give you my definition of BPEL:
What is BPEL
BPEL standards for Business Process Execution Language.
It is an XML standard for defining the composition of Web Services into new services (web services)
In some quarters it is seen as one of the corner stones of SOA and/or ESB’s
What does it do
It deals explicitly with the functional aspects of business process. IE:
- Flow control of process (braches, loops, parallel actions)
- Async communication and correlation
- Non-determinism
- Transactions
- Nested transactions
- Long Running transactions
- Compensation transactions
- Fault control
- In MS speak its Orchestration
What it is not
- It is not Workflow
- It is not BPM
- It is not the silver bullet solution to business process
How is it used?
- Programmers tool for low level orchestration of services and integration tasks
- Analysts will use it as a high level modeling artifact tool
- BPEL engine will provide runtime environment for State persistence , control of the SOAP stack, security and process management
Now I just need to do the same for Workflow…watch this space