语言规范
业务流程将相互独立的不同业务部门按照一定的流程关系相互联系在一起。业务流程定义是流程控制的基础。业务流程引擎是进行流程控制的执行体,它是按照业务流程的定义来执行的。XML在流程控制中的主要应用是对业务流程定义的规范,以解决不同业务流程之间的相互协调和更高的集成。
显然,如果不同部门采用不同的业务流程描述方法,在业务流程中相互协作就变得相当困难。为了一致化业务流程定义的描述,以解决不同应用系统之间业务流程互通的问题,许多标准组织都着手制定业务流程定义语言。在XML标准中,涉及到流程控制的有:
- WPDL
- XPDL
- BPML
- ebXML BPSS(Business Process Specification Schema)
- WSFL
- XLANG
- BPEL4WS
- WSCI
随着XML的应用和推广,出现了很多基于XML的业务流程语言标准。与Webservices相关的业务流程管理系统的标准有:ebXML BPSS、WSFL和XLang。2002年8月9日,微软和IBM共同发布了一个新的规范BPEL4WS,融合了XLANG和WSFL。其它与业务流程控制相关的标准有XPDL和BPML等。XPDL是wfMC所发布的标准,BPML是BPMI组织发布的。WfMC和BPMI在2002年6月26日宣布将合作制定业务流程和工作流标准,即采用BPML来描述工作流过程,同时采用XPDL所定义的工作流模型。可见,基于XML的业务流程标准在不断的发展过程中,需要一段相互融合、达成统一的规范时期,值得关注。
示例:下面是一段BPEL4WS的协作流程定义:
targetNamespace=http://acme.com/simpleloanprocessing
xmlns=http://schemas.xmlsoap.org/wa/2002/07/business-process/
xmlns:Ins=http://loans.org/wsd1/loan-approval
xmlns:loandef=http://tempuri.org/services/loandefinitions
xmlns:apns=http://tempuri.org/services/loanapprover>
servicelinkType+”Ins:loanAqqroveLinkType”
myRole=”approver”/>
serviceLinkType=”Ins:LoanApproveLinkType”
myRole=”approver”/>
serviceLinkType=”Ins:LoanApprovaILinkType”
partnerRole=”approver”/>
portType=”apns:loanApprovalPT”
operation=”approve” container=”request”
createInstance=”yes”>
partner=”apns:loanApprovalPT”
operation=”approve”
inputContainer=”request”
outputContainer=”approvalInfo”>
operation=”approve”container=”approvalInfo”>