Business Process Modeling Language (BPML)
Business Process Modeling Language (BPML) is a meta-language for the modeling of business processes, like XML, is a meta-language for the modeling of business data. BPML provides an abstracted execution model for collaborative and transactional business processes based on the concept of a transactional finite-state machine.
BPML, a superset of BPEL, was implemented by early stage vendors, such as Intalio Inc., but incumbents such as IBM and Microsoft did not implement BPML in their existing workflow and integration engine implementations like BizTalk or Websphere. They pushed for the simpler language BPEL. In view of the lack of market acceptance, the BPMI dropped support of BPML in favor of BPEL4WS. Following the merger of BPMI and OMG, BPML will be definitively deprecated in 2008, with OMG's adoption of BPDM. BPML was designed as a formally complete language, able to model any process, and, via a BPMS (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.
BPML was a metalanguage developed by the Business Process Management Initiative (BPMI) to model business processes and has been dropped in support of Business Process Execution Language (BPEL). BPML capability is intended for mission-critical applications by supporting synchronous and asynchronous distributed transactions. It offers a reliable security mechanism, is used in integrated development environments, houses project management capability and models business processes over the Internet. BPML also has an associated business process query language to execute business processes. BPML generally defines an abstract model and the grammar used to express a generic process. As such, it can be used to define enterprise business processes, complex Web services and multiparty collaborations. The base parts that make up a BPML abstract model are BPML constructs. XML syntax for the constructs is provided by BPML specification. The following attributes are defined in a BPML specification:
- Target namespace
Activities in a BPML perform specific functions and are either simple or complex. Simple activities such as action, assign, call, compensate, etc., cannot be further decomposed and perform a single operation. Complex activities such as all, sequence, switch, etc., are composed of one or more activities and direct the execution of an activity from another activity set.
BPML is not in common use any more.
BPML and XPDL(and BPEL)are XML-based process definition languages. They provide a formal model for expressing executable processes that addresses all aspects of enterprise business processes. They are based on significantly different paradigms.
Each paradigm utilizes activitiesas the basic components of process definition.In each, activities are always part of some particular process.Each has instance-relevant data, property for BPML and workflow-relevant data(data fields)for XPDL(and Containers for BPEL), which can be referred to in routing logic and expressions.
BPML is conceived of as a block-structured programming language. Recursive block structure plays a significant role in scoping issues that are relevant for declarations,definitionsand process execution. Flow control(routing)is handled entirely by block structure concepts(e.g. execute allthe activities in the block sequentially).
XPDL is conceived of as a graph-structured language with additional concepts to handle blocks. Scoping issues are relevant at the package and process levels.Process definitions cannot be nested. Routing is handled by specification of transitions between activities. The activities in a process can be thought of as the nodes of a directed graph, with the transitions being the edges. Conditions associated with the transitions determine at execution time which activity or activities should be executed next.
BPEL is a block-structured programming language, allowing recursive blocks but restricting definitions and declarations to the top level. Within a block graph-structured flow concepts are supported to a limited extent, constrained by inheritancefrom previous generation workflow software (only acyclic graphs, hence no loops; some constraints on going across block boundaries; a complicated semantics for determining whether an activity actually happens).
BPML focuses on issues important in defining web services. This is reflected in several ways:
- Activity types specifically for message interchange, event handling, compensation (in case of failure), delay.
- Attributes to support instance correlation, extraction of parts of messages, locating service instances.
- Support for transactions, utilizing the block structure context, exception handling and compensation.
XPDL focuses on issues relevant to the distribution of work.
- Activity attribute specifies the resource(s) required to perform an activity. This is an expression, evaluated at execution time, which determines the resource required.
- Activity attribute specifies the application(s) required to implement an activity.
- These concepts together support the notion of a resource (e.g. participant), in conjunctionwith an application, performing the activity. The implementation of work list handlers to achieve this lies outside the domain of the process definitions.
BPEL focuses on issues important in defining web services and does this in a way which isquite similar to BPML.