A Technical Comparison Of XPDL, BPML And BPEL4WS

Transcription

CAPE VISIONSSoftware To Simplify ComplexityA Technical Comparison ofXPDL, BPML and BPEL4WSRobert Shapiro1IntroductionXML-based business process languages represent a new approach to expressing abstract andexecutable processes that address all aspects of enterprise business processes, including inparticular those areas important for web-based services.In this paper we focus on a comparison of three XML business process languages. We willcompare the Business Process Management Initiative’s BPML, XPDL, the WfMC proposedstandard, and the new standard proposed by IBM, Microsoft and BEA, BPEL4WS, hereafterabbreviated to BPEL. Microsoft’s XLANG and IBM’s Web Services Flow Language (WSFL)were earlier variations that were combined in BPEL4WS.1.11.1 ObjectivesOur primary objective is to clarify the differences between the BPML , BPEL and XPDLparadigms. We are interested in exposing what can be done with one language and cannot bedone, or done only with difficulty in the other. When simple extensions are possible, we proposethem.We are also concerned about the work being done by three standards organizations: WfMC (Workflow Management Coalition) OMG (Object Management Group) BPMI (Business Process Management Initiative)BPMI has also proposed a common modeling notation (BPMN). The comparison of BPML andXPDL should expose some of the challenges in this undertaking.In a joint meeting on November 19, 2002 BPMI invited WfMC to specify additions to BPMNthat would allow it to serve as a graphical front end to XPDL. OMG has not been directlyinvolved in the BPMN project.In addition to BPML, on 26 June 2002, BEA Systems, Intalio, SAP and Sun announced thepublication of the XML-based WSCI, a specification that: Defines the behavior of Web service interfaces 2002 Robert ShapiroPage 1 of 2212/8/2002

CAPE VISIONSSoftware To Simplify Complexity Forms part of the ongoing Web service process flow composition efforts (often referredto as orchestration, choreography or workflow)Incorporating many aspects of BPML, WSCI focuses on the choreography of web services. Wedo not explore this topic further in this paper.There is at least one other important project that addresses Business Process Management System(BPMS) issues in a Web Services context: ebXML(OASIS/UN)It is our intent to include a discussion of functionality contained in any of these which should bepart of a business process notation such as BPMN, or supported by BPM simulation technology.12/8/2002Page 2 of 22

CAPE VISIONSSoftware To Simplify Complexity2BPML, BPEL and XPDL Comparison2.1OverviewBPML, BPEL and XPDL are XML-based process definition languages. They provide a formalmodel for expressing executable processes that addresses all aspects of enterprise businessprocesses. They are based on significantly different paradigms.Each paradigm relies on activities as the basic element of process definition. In each, activitiesare always part of some particular process. Each has instance-relevant data which can be referredto in routing logic and expressions. The data is termed property in BPML , Containers in BPELand workflow-relevant data (data fields) in XPDL.BPML is conceived of as a block-structured programming language. Recursive block structureplays a significant role in scoping issues that are relevant for declarations, definitions and processexecution. Flow control (routing) is handled entirely by block structure concepts (e.g. execute allthe activities in the block sequentially).BPEL is a block-structured programming language, allowing recursive blocks but restrictingdefinitions and declarations to the top level. Within a block graph-structured flow concepts aresupported to a limited extent, constrained by inheritance from previous generation workflowsoftware (only acyclic graphs, hence no loops; some constraints on going across blockboundaries; a complicated semantics for determining whether an activity actually happens).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 benested. Routing is handled by specification of transitions between activities. The activities in aprocess 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 activitiesshould be executed next.BPML focuses on issues important in defining web services. This is reflected in several ways: Activity types specifically for message interchange, event handling, compensation (incase of failure) delay. Attributes to support instance correlation, extraction of parts of messages, locatingservice instances. Support for transactions, utilizing the block structure context, exception handling andcompensation.BPEL focuses on issues important in defining web services and does this in a way which is quitesimilar to BPML.XPDL focuses on issues relevant to the distribution of work. 2002 Robert ShapiroPage 3 of 2212/8/2002

CAPE VISIONSSoftware To Simplify Complexity Activity attribute specifies the resource(s) required to perform an activity. This is anexpression, 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 toachieve this lies outside the domain of the process definitions.2.2Block Structured versus Directed GraphIt is not the purpose of this paper to argue the merits of these two approaches. We make twopoints in this regard:Block structures work well in programming languages.Business operations people are used to flow diagrams and other graphical notations.It seems likely that business users would prefer to use a GUI based, at least in part, on diagrams.We are concerned here with questions about what can be represented in one language and not theother.Translation of blocked-structured flow control (routing) into a graph structure presents nofundamental difficulties. The reverse is more problematic. This can be facilitated by imposing aset of restrictions on the graph structure that guarantee it to be ‘well-structured’. It is likely thatBusiness Process Management Systems that use BPML or BPEL will support some type ofgraphical tool for process definition that imposes such restrictions. It remains to be seen whethersuch restrictions limit their usability. We do not pursue this topic in this paper.BPEL attempts to offer the best of both approaches by introducing a flow construct and usinglinks to create ‘arbitrary’ flow dependencies between the activities contained within the flowconstruct. However, there are constraints which rule out loops and crossing certain structuralboundaries; additionally the semantics relies on a complicated formulation which tests andpropagates the status of links. It is possible that a graphical front end could simplify this and bemore user-friendly to the business analyst.2.3Definitions and Recursive Block StructureBPML makes extensive use of block structure scoping related to definitions and declarations.Complex activities refer to activity sets which have an associated context. In the context it ispossible to declare or re-declare properties, define or re-define processes (nested processes) andso forth. (Many other features are scoped by the context in which they appear, including errorhandling, transactions and connectors (for message handling). Since a complex activity canappear in an activity set, this nesting is recursive.XPDL only allows process definitions on the top level. Hence there are no nested processes.Since workflow relevant data is declared either on the top level, or within a process definition, itis limited to 2 scope levels. We make no assessment here as to whether nested process definitionsare an important feature. BPEL does not support nested process definition. Furthermore, the12/8/2002Page 4 of 22

CAPE VISIONSSoftware To Simplify Complexityequivalent of workflow relevant data, containers, are global in scope. (The current spec also failsto make clear whether (or how) containers are instance-specific).In what follows we make use of two new constructs included in XPDL 1.0, blockactivity andactivityset. The block activity is like the complex activities in BPML, with attributes fordesignating the type of complex activity and other information appropriate to defining a contextfor an activity set. Including data field declarations in the context would allow the same scopingpossibilities as BPML. To implement nested processes, process definitions would also have to beincluded.Most of the features associated with BPML complex activities could be represented in XPDL bythe block activity. This construct refers by name to a set of activities that have no transitionsoutside the set. The construction process for the BPML all activity, for instance, would simplyintroduce a first and last activity within the activity set, where the first activity is an andsplit andthe last activity is an andjoin. There would be a transition from the first activity to each of theactivities within the block and a transition from each activity to the last activity. Other types ofcomplex activities could be represented by transitions that implement the appropriate controllogic. In the sequel we suggest an alternate approach which makes the translation from BPML toXPDL easier, but passes some of the burden onto the workflow or simulation engine that executesthe XML definitions. In so doing we are not making a recommendation to change XPDL.(The September 2002 WfMC XPDL 1.0 release has included a version of BlockActivity andActivitySet that can be trivially extended to implement complex activities.)2.4Specialized Atomic ActivitiesBPML and BPEL include a number of specialized atomic activities. Some of these in turnrequire a particular set of attributes to support their specific function. In XPDL there are severalbasic types: Implemented by sub-flow, synchronous and asynchronous. Implemented by application Routing activity (dummy, for routing purposes only) Block activity (replaces loop activity and inline block)It is natural to map the atomic BPML activities into XPDL activities. There are several issues. Neither BPML nor BPEL have the notion of an application. The BPML Call activity isidentical (except for scoping issues) to an XPDL activity implemented by a synchronoussub-flow. The BPML Spawn activity is like the XPDL asynchronous sub-flow, except forsome special bookkeeping aspects. In BPEL all processes are instantiated by reception of a message. (“The only way toinstantiate a business process in BPEL4WS is to annotate a receive activity with thecreateInstance attribute set to "yes"”).12/8/2002Page 5 of 22

CAPE VISIONSSoftware To Simplify Complexity 2.5Otherwise, additional attributes must be used in XPDL to carry the information neededby the specialized BPML activity.Activities and Attributes for WSDL MessagesBPML and BPEL build on top of WSDL. They each have specific activities with the appropriateattributes to utilize the standard WSDL messages. XPDL activities would be extended to do thesame by the addition of appropriate attributes.BPMLBPELXPDLactionreceive, reply, invokeWould requiredadditional attributes (andapplications/tools andlibrary functions)correlationWorkflow relevant data isinstance specific. Thecorrelation attributewould have to be used toidentify the rightinstance.Implements the standard WSDLmessage patterns:One-way, request-response, solicitresponse, notificationcorrelationUsed to match the message to theright instantiation of the process.locatorUsed to find the correct service.Service link, partners,service referenceRefer to WSCI spec.callNot supportedAn action can perform an arbitraryset of activities only if itssemantics require that theseactivities be performed in order forthe action to complete, specificallywhen performing the WSDL12/8/2002Page 6 of 22

CAPE VISIONSSoftware To Simplify Complexityrequest-response operation.output, selectorUsed to construct messages fromproperty values.propertyalias, assign,query, containerSee Service Composition,also Relationship to WSTransaction SpecificationConnectorUsed in the specification of theinteraction between services in theGlobal Model.Refer also to WSCI spec.2.6Web Services OrchestrationThe three languages we have been discussing are paired up with orchestration languages whichfocus on the interaction between processes running on different web servers or workflowenactment engines.BPMLBPELXPDLWSCIBPEL Business ProtocolsWf-XMLWS-Coordination2.6.1BPML and WSCIWSCI describes the observable behavior of a Web Service. This is expressed in terms of temporaland logical dependencies among the exchanged messages, featuring sequencing rules, correlation,exception handling, and transactions. WSCI also describes the collective message exchangeamong interacting Web Services, thus providing a global, message-oriented view of theinteractions.The WSCI specification includes a great deal of the detail from BPML itself and re-uses much ofthe language. No special notation is developed for representing or analyzing protocols.2.6.2XPDL and Wf-XML12/8/2002Page 7 of 22

CAPE VISIONSSoftware To Simplify ComplexityWf-XML is a specification for a language based on XML, designed to model the data transferrequirements set forth in the Workflow Management Coalition Interoperability Abstractspecification .This language will be used as the basis for concrete implementations of thefunctionality described in the Interoperability Abstract supporting the WfMC’s Interface 4, asdefined by the Workflow Reference Model.At a high level, these are the goals of Wf-XML: Support chained, nested and parallel-synchronized models of interoperabi

In this paper we focus on a comparison of three XML business process languages. We will compare the Business Process Management Initiative’s BPML, XPDL, the WfMC proposed standard, and the new standard proposed by IBM, Microsoft and BEA, BPEL4WS, hereafter abbreviated to BPEL. Microsoft’s XLANG and IBM’s Web Services Flow Language (WSFL)