Business Process Modeling Language (BPML) is complementary to Business Process Execution Language (BPEL). BPML can be used to define the detailed business process behind each service.1 BPML maps business activities to message exchanges. It can be used for the definition of enterprise business processes, the definition of complex Web services and multiparty collaborations. Some of the organizations that are involved in the definition of the BPML Specification are CSC, Intalio, SAP, Sun, SeeBeyond and Versata.

From the BPML Specifications, its intent is as follows: "Business Process Modeling Language (BPML) is an XML language to define a formal model for expressing executable processes that address all aspects of enterprise business processes. BPML defines activities of varying complexity, transactions and compensation, data management, concurrency, exception handling and operational semantics. BPML provides a grammar in the form of an XML Schema to enable the persistence and interchange of definitions across heterogeneous systems and modeling tools."

BPML is a rich and mature language to express both simple and complex business processes. BPML and BPEL share an identical set of idioms and similar syntaxes as block-structured languages. Compared to the activities supported by BPEL as listed in my February column, BPML syntax supports: activities and activity types, processes, properties, signals, schedules and exceptions.

Simple BPML Activity Types

  • Action: Performs or invokes an operation involving the exchange of input and output messages.
  • Assign: Assigns a new value to a property.
  • Call: Instantiates a process and waits for it to complete.
  • Compensate: Invokes compensation for the named processes.
  • Delay: Expresses the passage of time.
  • Empty: Does nothing.
  • Fault: Throws a fault in the current context.
  • Raise: Raises a signal.
  • Spawn: Instantiates a process without waiting for it to complete.
  • Synch: Synchronizes on a signal.

Complex BPML Activity Types

All: Executes activities in parallel.

Choice: Executes activities from one of multiple sets, selected in response to an event.

Foreach: Executes activities once for each item in an item list.

Sequence: Executes activities in sequential order.

Switch: Executes activities from one of multiple sets, selected based on the truth value of a condition.

Until: Executes activities once or more based on the truth value of a condition.

While: Executes activities zero or more times based on the truth value of a condition.

A complex activity is an activity that contains one or more child activities. It establishes a context for execution and directs that execution. Complex activities define hierarchical composition. This can be as simple as repetitive execution of a single activity or a means to establish a nested context for the execution of multiple activities. BPML supports other forms of composition, which include cyclic graphs and recursive composition. Complex activities are used when hierarchical composition is required, in particular to establish a new context for the execution of child activities.

A simple activity is any activity that may lead to the execution of multiple activities, specifically the action, call, compensate and spawn activities. However, a simple activity does not by itself define the context for the execution of other activities. Differentiating between these further, the following language summary illustrates that BPML includes all of the logic constructs of a rigorous programming language.

A complex activity that contains multiple activity sets must, of course, select which one to use. Several typical logic constructs are used. The choice activity waits for an event to be triggered and then selects the activity set associated with that event handler. The switch activity evaluates conditions and selects the activity set associated with a condition that evaluates to true. All other complex activities defined in the BPML specification contain a single activity set and thus do not need to make such decisions.

A complex activity also determines the number of times to execute activities from the total activity set. Typical logic constructs here are: the until activity, which repeats executing activities until a condition evaluates to true; the while activity, which executes activities repeatedly while the condition evaluates to true; and the foreach activity, which repeats executing activities, once for each item in the item list. All other complex activities listed execute activities from the activity set exactly once.

A complex activity determines the order in which activities are executed. The sequence activity executes all activities from the activity set's list in sequential order. The all activity executes all activities from the activity set's list in parallel. All other complex activities defined in BPML execute activities in sequential order.

The complex activity completes when it has finished executing all activities from the activity set. This includes all activities that are defined in the activity list and all processes instantiated from a definition made in the activity set's context. Nested processes and exception processes are considered activities of the activity set.

Simple activities abort and throw a fault if they cannot complete due to unexpected error. Complex activities abort and throw a fault if one of their activities throws a fault from which they cannot recover.

With its additional support for nested processes and other syntax, BPML is a superset of BPEL. When BPEL is used with BPML, an end-to-end view depicts the role of each individual business process in the overall choreography and the business activities that are performed by each role.

BPEL and BPML are similar approaches to solve the same problem: the definition of process logic in XML so that it can be used as executable code by BPM-based software products. These languages are evolving. All are solutions to the same problem, with specifications and languages that are conceptually similar; they may in time consolidate into one overall specification. 

Reference:

  1. Further details about the Business Process Modeling Language (BPML) specifications are available from the BPMI Web site at http://www.bpmi.org/.

Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access