XProc versus BPEL
XProc (XML Pipeline Language) is a general utility for defining XML pipelines. BPEL (Business Process Execution Language) is a declarative orchestration language for business processes. At some level both languages are workflow languages, and with that in mind, here is a side-by-side comparison.
XProc | BPEL |
---|---|
W3C technology | OASIS technology |
XML-based | XML-based |
General utility for defining XML pipelines, goal is to provide an 80% solution | Declarative orchestration language for business processes, goal is to provide a 100% solution |
Supports orchestration of both REST and SOAP-based web services | Only supports orchestration of SOAP-based web services |
XProc processors: | BPEL processors: |
Kinds of flows supported:
|
Kinds of flows supported:
|
Can orchestrate both web services and applications (e.g. XML Schema validators, XSLT processors) | Can only orchestrate (SOAP-based) web services |
Does not support event-driven workflows | Supports event-driven workflows, e.g. a process may specify that a workflow task is to be executed when a certain message is received, or when a certain time is reached |
Synchronous workflows only | Synchronous and asynchronous workflows |
Single-run workflows, i.e. no infinitely looping workflows | Supports long-running workflows (days, months, years), i.e. supports infinitely looping workflows |
Does not support workflows that have humans in the loop, i.e. automated workflows only |
BPEL4People is the WS-BPEL Extension for People; it does allow for human interactions. |