You are here: Home > What's New > XProc versus BPEL

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:
  • sequential
  • conditional
  • iterative
  • parallel
Kinds of flows supported:
  • sequential
  • conditional
  • iterative
  • parallel
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

The BPEL language specifies the behavior of business processes as long as the activities of the processes are Web services. Human interactions are not in its domain

BPEL4People is the WS-BPEL Extension for People; it does allow for human interactions.