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.
|W3C technology||OASIS technology|
|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.