博阳精讯

国内专业基于ARIS提供“卓越业务流程管理”解决方案的咨询公司。

流程管理资讯微信公众号

流程管理资讯网,BPM业界有影响力中立资讯平台。

博阳精讯业务流程管理微信公众号

国内专业基于ARIS提供“卓越业务流程管理”解决方案的咨询公司

浅析XPDL与BPEL现状
来源: TechTarget 作者: 佚名 2010-02-02 阅读数:10976

【TechTarget中国原创】实践派的XPDL

XPDL(XML Process Definition Language)的缩写,是由Workflow Management Coalition(WFMC)所提出的一个工作流描述规格,使用XML文件让不同的工作流程软件间交换商业流程定义。XPDL是一个通用的框架,据WFMC认证列表统计目前全球约有80个厂商支持该标准,包括我们熟悉的IBM、BEA(Oracle)、Tibco相关流程产品,目前XPDL的最新版本是2.1(2008年4月23日approve version)。

WFMC为实现不同工作流产品间互交换,给定了5类接口规范(Interface),其中我们讨论的XPDL是其Interface1。XPDL给定了流程定义间进行相互转换的XML Schema元模型,这个XML Schema可理解为与运行控制无关的描述结构,为设计流程和运行流程提供了形式上的可分离,这样无论开发者使用Java、.Net还是轻量级的PHP、Python语言,采用有限状态机还是Petri网,只要外部接口符合XPDL规范,那么就可以保持相同的表示形式和互操作,这就为厂商间标准合规性验证提供了一个通用的描述框架,更重要的是XPDL对不支持的厂商个性场景提供了扩展,这个扩展框架约束能够保证流程对外表现形式的一致性。正是这个定位使得XPDL在与十几年中出现的众多潜在新兴竞争标准之争中仍然保持旺盛的生命力,并催生了不同竞争活力的工作流产品。对于实现XPDL规范的工作流产品,目前一个通常的方式是采用BPMN进行建模,以XPDL为持久格式,由厂商实现的流程引擎执行该描述。

XPDL的主要元模型包括了过程活动、转移连接弧(可理解为规则)、参与者(过程活动所需的资源,在XPDL中参与者模型被抽象为一个分配对象,可能是现实世界的人也可以是一个系统或服务)、程序声明(过程活动调用的IT应用程序或接口服务,例如一个人工任务的交互表单、Web服务)和工作流相关数据(运行期间持久化的流程实例控制数据)。

WFMC工作流联盟是一个活跃了十五年的民间组织,官方宣称有超过300个成员,在欧洲、美洲及亚太设有指导委员会,每隔三年举办一次大规模的工作组会议,XPDL除了得到大部分国际工作流厂商和Opensource支持外,在中国也有不少工作流厂商支持该标准。

“老”贵的BPEL

BPEL(Business Process Execution Language)的缩写,直意为业务过程执行语言,是一种基于XML的,用来描写业务过程的编程语言,被描写的业务过程的每个单一步骤则由Web服务来实现,这个描述本身也由Web服务提供,即BPEL模型本身也被当做Web服务来使用。BPEL在过去很长一段时间被视为未来工作流标准的“新贵”,经过八年的发展,目前BPEL规范已在Oracle、IBM等厂商SOA产品中提供支持,可以说是新贵变”老”贵了。

BPEL基于Web Service的WSDL建立,相关标准还包括XML Schema、XPath、WS-Addressing等SOA标准。最初的BPEL标准被定位于大规模分布式商业应用下的服务编程语言,不支持人机对话的人工流程,BPEL所描写的过程仅与Web服务通信,而这些Web服务却可以提供与用户的信息交换,但它们不是用户本身。BPEL从2002年提出后也是在不断更新,在随后加入了一些重要扩展规范,例如BPELJ(允许BPEL XML中加入Java程序段,需要澄清的是BPEL不仅能够执行Web服务,还可以通过厂商扩展调配JCA、JMS等)、BPEL4People和WS-HumanTask(虽然在分布式商业应用中广泛采用了Web服务,但是缺乏人员交互是应用于真实世界业务过程的一大差距,这个扩展使BPEL能够兼顾基于角色的人工活动编排过程)。可以说BPEL在构建符合标准的SOA架构中占据重要位置,是编排Service的杀手锏,但目前市面提供的BPEL产品在解决企业非流程集成场景方面仍有明显不足,我认为BPEL如果不出意外,肯定会成为工业界中业务集成方面的标准语言,如果成为完整的工作流工业标准目前还差一些。

BPEL是一种基于块(Block)的结构化编程语言,可以在符合BPEL标准的引擎上执行,作为一门简单的编程语言,包括了基本的顺序(Sequence)、选择(Switch)和循环(While)程序语言控制结构,与XPDL工作流实例不同,BPEL通过因为 receive和 pick活动提供进入流程的入口点,利用一个特定于消息的 XPath 表达式匹配从 WSDL相关消息集合(Correlation Set)的实例中定位实例操作。在BPEL中,一个流程可以调用其他服务,也可以响应来自客户端的请求(receive和 pick)。也就是说BPEL流程实例既可以作为服务的请求者,也可以扮演服务的提供者。

XPDL与BPEL的区别关系

XPDL与BPEL是完全不同且互补的标准,BPEL是一个“执行语言”,旨在提供一个Web服务编排定义,BPEL的定义关注一个进程以Web服务和XML数据集成为主的可执行。而XPDL则是一个与开发者相关实现无关的流程过程描述规范和交换接口,在工作流结构完整性方面XPDL较为成熟,但XPDL未在基于SOA架构下的服务编排方面给定更多标准化的交换格式,大部分BPM厂商均以XPDL扩展语法提供私有的扩展,而此部分正是BPEL所努力的,虽然BPEL已经向其不擅长的人工流程和非Web Service服务编排领域拓展规范,但仍然需要在非集成领域的流程规范方面向XPDL老大哥学习,比如在面向BPM业务分析师视角,目前BPEL2.0尚缺失对过程模拟规范的制定。

  原 文 分 享
下一篇: ARIS MashZone:10分钟创建在线报告
Copyright Reserved 2005-© | 沪ICP备11014532号-2 | 沪公网安备 31011502016262号