BPMN这点事-那段悲催的历史(下)XPDL、BPEL和BPDM之间的恩怨们

BPMN被BPMS厂商们大量采用,他们使用它来进行流程的建模,至于模型的执行和存储,则由他们各自不同的流程执行语言实现。时至今日,BPMN1.x被大多数的建模工具和BPMS厂商所支持,他们关心的是建模,没有人关心BPMN的直接执行,也是,BPMN的主要用户是业务人员和流程分析人员。

那么,BPMN的故事结束了吗?显然没有,BPMN1.x只是一些建模符号,不支持元模型,不支持存储和交换,也不支持执行。那么围绕着BPMN1.x的存储、交换和执行,必然会产生新的竞争,这次的主角换成了XPDL、BPEL和BPDM。

XPDL作为WfMC提出的流程定义语言规范,本身就是一个元模型,可以存储,并且具备执行语义,因此理论上来讲,将BPMN转换为XPDL就可以解决存储、交换和执行的问题。XPDL2.0于2005年10月发布,在规范里,WfMC直接将XPDL的目标定义为BPMN的XML序列化格式。2008年4月23日发布的XPDL2.1规范,直接支持BPMN1.1到XPDL2.1的转换。XPDL是面向图的,BPMN也是面向图的,因此BPMN到XPDL的转换有着天然的优势。如今有超过80个的不同公司的产品使用XPDL来交换流程定义,同时也有一些厂商在自己提供的BPMN工具中使用了XPDL作为交换和存储格式。

但XPDL的流行是大厂商们所不愿看到的,他们的规范自然还是BPEL,我辛辛苦苦PK掉BPML,您XPDL抢位来了,我情何以堪,情何以堪啊。BPEL-WS规范在2003年4月提交给了OASIS(Organizationfor the Advancement of Structured Information Standards,结构化信息标准促进组织)并更名为WSBPEL(Web Services Business Process Execution Language)规范, 2007年4月发布WSBPEL2.0版本,除了Microsoft、 BEA、 IBM、 SAP 和Siebel,Sun Microsystems和甲骨文公司也相继加入了OASIS组织。除去政治因素,BPEL的流行还在于Web正成为分布式系统架构的平台以及SOA的雄起,SOA强调服务的分解和解耦,而BPEL则对这些WEB服务进行编制,两者密不可分。但BPMN到BPEL的转换存在着先天上的缺陷,原因是BPMN是基于图的,而BPEL是基于块的,BPEL是一个结构化(块[Block])和非结构化(控制链和事件)的混合体。这个缺陷导致有些BPMN建模的流程无法映射到BPEL,两者的双向工程更是存在问题。这个缺陷成为人们反复诟病的对象。许多支持BPEL的产品为了解决这一问题,不得不在用户建模时做出种种限制,让用户绘制不出无法转换的模型。

而BPDM(业务流程定义元模型,Business Process Definition Metamodel)则是OMG组织自己提出来解决BPMN存储和交换问题的规范。于2007年7月形成初稿,2008年7月被OMG最终采用。BPDM是一个标准的概念定义,用来表达业务流程模型。元模型定义了用来交换的概念,关系和场景,可以使得不同的建模工具所建模出来的流程模型进行交换。BPDM超越了BPMN和BPEL所定义的业务流程建模的要素,它定义了编排和编制。

三者的竞争关系似乎还将继续,但,BPMN2.0出现了,BPMN2.0 beta1版本于2009年8月发布,BPMN2.0 beta2版本于2010年5月发布,BPMN2.0正式版本于2011年1月3日发布。BPMN2.0正式将自己更名为Business Process Model And Notation(业务流程模型和符号),相比BPMN1.x,最重要的变化在于其定义了流程的元模型和执行语义,即它自己解决了存储、交换和执行的问题,BPMN由单纯的业务建模重新回归了它的本源,即作为一个对业务人员友好的标准流程执行语言的图形化前端。BPMN2.0一出手,竞争就结束了,XPDL、BPEL和BPDM各自准备回家钓鱼。看起来胜利者似乎是BPMN,但看看BPMN2.0的领导者,就会发现最后的胜利者还是IBM, Oracle和SAP这些大厂商们,他们提交的草案明确要赋予BPMN2.0以执行语义,这迫使BPDM团队撤回了其提交,并将他们的提议与BPDM团队想法合并,这就是BPMN2.0最后内容的由来。

BPMN的目标是期望通过一套统一的建模、执行模型填起业务人员与开发人员之间的那道鸿沟。但问题是它真的能够如它期望般的做到这一点吗,对业务人员友好的模型对开发人员同样友好吗,反过来,对开发人员友好的模型对业务人员同样友好吗,尽管他们使用的都是同一套符号?我们在后续的建模实例里将看到这样的问题,这涉及到建模的风格。同一个流程模型能够使用多种建模方式,哪种方式才是最有效的?这就需要考虑模型的用户是谁(业务人员、分析人员、开发人员),才能界定是否有效了。此外,工具毕竟只是工具,促进业务人员与开发人员之间的沟通,除了工具,还有公司文化、组织结构等等其他人的因素,这也才是最重要的因素。

不管怎样,BPMN2.0是BPMN历史上最重要的一个版本,BPMN继续向正确的方向迈进了一大步。在下一节里,我们将一起看看BPMN所支持的三种基本类型的流程模型。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BPMNXPDLBPEL是三种流程建模语言,用于描述业务流程和工作流程。这些语言都有各自的特点和用途。 BPMN(Business Process Model and Notation,业务流程建模和标记)是一个广泛使用的标准,用于描述业务流程的各个方面,包括活动、件、网关、连线等。它提供了一种直观和易于理解的图标,可以帮助业务分析师和技术人员共同理解和设计业务流程。BPMN具有可扩展性,支持不同层次的详细程度,从高层次的概念模型到详细的流程实现。 XPDL(XML Process Definition Language,XML流程定义语言)是一种基于XML的流程建模语言,用于定义和交换工作流程模型。它提供了一种通用的格式,使不同的流程管理系统能够共享和交换流程定义。XPDL支持多种类型的节点和连接,允许细粒度的流程定义和控制。它还包含了与其他标准的集成,如BPMN和WfMC。 BPEL(Business Process Execution Language,业务流程执行语言)是一种用于描述和执行业务流程的编程语言。它在BPMNXPDL的基础上更加强调执行层面,提供了一种可编程的方式来定义和组织业务流程的执行。BPEL支持各种类型的活动、件、条件和异常处理,并提供了与Web服务的集成能力。它可以作为中间件或引擎,驱动实际的业务流程执行和协调。 总的来说,BPMNXPDLBPEL是为了不同的目的而设计的流程建模语言。BPMN用于描述和设计业务流程的概念模型,XPDL用于定义和交换工作流程模型,而BPEL用于编程和执行业务流程。这些语言在业务流程管理和工作流引擎中有着广泛的应用,可以帮助组织更好地理解、设计和执行其业务流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值