XPDL

XPDL is one of Process Definition Languages defined to enable mutual conversion of data files among all BPM products. By following XPDL, not only processes of business flow but also graphical information of business flow diagrams can be described.

Overview
XPDL is one of Process Definition Languages defined to support mutual conversion of all data files among BPM-related products. It can describe not only processes of tasks but also graphical information of business flow diagrams. In other words, all graphical objects in BPMN can be saved as XML text data.

BPEL can also define business process as text-based information, and BPEL and XPDL are called "the two major business process definition language standards." However, BPEL primarily focuses on the detailed control over information systems, such as web services, and does not support to save graphical business objects. The large portion of BPEL supporters are application server software vendors and business process integration software vendors, such as "IBM, Microsoft, BEA, Oracle, SAP, and Adobe."

Application of XPDL
XPDL enables the data compatibility not only between modeling tools and BPM engines but also supposedly between modeling tools and simulation tools or optimization tools. In addition, "loss of role information" never occurs upon XPDL conversion. As a whole, XPDL is considered to be suitable for Human-Centric BPM.

Currently, not only modeling tools but also BPM suite products tend to support XPDL-export feature.

Background and Relation of the Two Major Language Standards
BPM is a fusion of "EAI" field and "workflow" field and follows "BPEL" and "XPDL," which are the outcomes of these two fields.

Although sometimes these two are considered to be rivals, they have distinct characteristics and are actually in complementary relationship. That is to say, EAI (Enterprise Application Integration) mainly focuses on "integration and coordination of business systems in a company in terms of processing speed or expandability and flexibility," and tries to make the data and processes what they should ideally be. On the other hand, workflow primarily aims to "analyze the flow of human interactions in terms of business efficiency and business risks," and explores how the roles and task sequences in the organization should be.

History

 * 08/1993:     WfMC was founded.
 * 11/1998:     WfMC published WPDL (as a standard exchange language for business process definition).
 * 10/2002:     WfMC published the specification of XPDL1.0. (Owing to the growing popularity of XML, WPDL was changed into XML-based language.)
 * 05/2004:     BPMI and BPMN1.0 were published. (The specification of BPEL-mapping is also included.)
 * 00/2004:     WfMC committed a policy to extend WPDL so that WPDL was able to describe all diagrams expressible in BPMN.
 * 06/2005:     Strategic integration of BPMI and OMG was accomplished.
 * 10/2005:     WfMC published the specification of XPDL2.0. (BPMN1.0 was supported.)
 * 02/2006:     OMG published the specification of BPMN1.0. (OMG final version)
 * 01/2008:     OMG published the specification of BPMN1.1.
 * 04/2008:     WfMC published the specification of XPDL2.1. (BPMN1.1 was supported.）

Example of XPDL File
   2.0 Questetra 01/01/2008 00:00:00 AM  …       …     </SchemaType> </TypeDeclaration>  …   </TypeDeclaration> </TypeDeclarations> <Participants> <Participant Id="DBConnection"> <ParticipantType Type="SYSTEM"/> <Description>Reference to Database Resource</Description> </Participant> </Participants> <Pools> <Pool Process="1" Id="2" BoundaryVisible="false"> <Lanes/> <NodeGraphicsInfos> <NodeGraphicsInfo Page="1"/> </NodeGraphicsInfos> </Pool> <Pool Process="2" Id="3" Name="" BoundaryVisible="true"> …   </Pool> </Pools> <WorkflowProcesses> <WorkflowProcess Id="2" Name="EORDER"> <ProcessHeader/> <FormalParameters> <FormalParameter Id="orderString" Mode="IN"> <DataType> <BasicType Type="STRING"/> </DataType> </FormalParameter> <FormalParameter Id="returnMessage" Mode="OUT"> …       </FormalParameter> </FormalParameters> <Applications> <Application Id="transformData"> …       </Application> </Applications> <DataFields> <DataField Id="1" Name="orderNumber" IsArray="FALSE"> <DataType> <BasicType Type="INTEGER"/> </DataType> <Length>0</Length> <Description/> </DataField> <DataField Id="3" Name="status" IsArray="FALSE"> </DataField> </DataFields> <ActivitySets/> <Activities> <Activity Id="10" Name="Transform Data"> <Implementation> <Task> <TaskApplication Id="transformData"> <ActualParameters> <ActualParameter>orderString</ActualParameter> <ActualParameter>orderInfo</ActualParameter> </ActualParameters> </TaskApplication> </Task> </Implementation> <NodeGraphicsInfos> <NodeGraphicsInfo Page="1" LaneId="0" Width="75.0" …> …           </NodeGraphicsInfo> </NodeGraphicsInfos> </Activity> </Activities> <Transitions> <Transition Id="16" Name="" From="10"…> </Transition> </Transitions> </WorkflowProcess> <WorkflowProcess Id="3"…> …   </WorkflowProcess> </WorkflowProcesses> <ExtendedAttributes> … </ExtendedAttributes> </Package>

Related Article

 * BPMN
 * WfMC
 * Human-Centric BPM
 * Integration-Centric BPM
 * Workflow Engine