BPML was designed as a formally complete language, able to model any process, and, via a
business process management system, deployed as an executable software process without generation of any software code. This is not possible with BPEL, since BPEL is not a complete process language. In practice BPEL is often used in conjunction with Java to fill in the "missing" semantics. In addition, BPEL is often tied to proprietary implementations of workflow or integration broker engines. Whereas, BPML was designed, and implemented, as a pure concurrent and distributed processing engine. It was designed to be semantically complete according to the
Pi-calculus formal representation of computational processes. BPEL and BPML are examples of a trend towards
process-oriented programming. BPEL and BPML herald the concept of a BPMS as an IT capability for management of business processes, playing a role similar to a
RDBMS for business data. == See also ==