在上一章里我们了解了BPM的基本概念,什么是业务流程管理,业务流程管理是一种以规范化地构造端到端的业务流程为中心,以持续地提高组织业务绩效为目的的系统化管理方法。同时,我们也了解了BPM活动的五个阶段:设计、建模、执行、监控和优化。在本章中,我们将把关注点放到BPMN上,什么是BPMN,在BPMN1.X里,BPMN是Business Process Modeling Notation的缩写,即业务流程建模符号,而在BPMN2.0里,BPMN变成了Business Process Model And Notation的缩写,即业务流程模型和符号,一个单词的增加却标示着BPMN本身发生了巨大的变化。到底是怎样的变化呢,让我们一起进入BPMN那段悲催的历史。
BPMN最早是由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发的,这个组织的领导者是Intalio公司。提到BPMI组织,不得不提 BPML(Business Process Modeling Language) 业务流程建模语言。在敏锐的认识到Web将成为未来分布式系统架构的平台后,BPMI组织创建了BPML,一种全新的流程执行语言,该语言不与任何供应商绑定,而BPMN则作为BPML的可视化表现符号被创建。BPMI组织的会员在高峰期达到了200多家公司,除了IBM和微软,几乎所有的主要软件供应商都加入了该组织。
BPMN则反映出BPMI组织的另一个具有前瞻性的观点,即业务人员(多是非技术人员)对IT执行流程的可视化和管理将成为未来BPM系统的关键。通过授权,业务人员能够管理自己的流程。在BPMN出现之前,市面上已经存在流程建模图的标准例如UML的活动图(UML由对象管理组织OMG维护管理,很快,我们将再次看到这一组织),但这些标准被认为过于技术化,而BPMN在被设计之初就强调要对业务人员友好。BPMN1.0在2004年5月由BPMI组织正式发布,其全称是Business Process Modeling Notation,即仅仅作为业务流程建模的一系列符号标准。
对BPMN和BPML来说,两者的遭遇截然不同,在BPMI组织的会员中,BPMN受到了大多数流程建模工具厂商的欢迎,他们认为统一的建模标准能够使他们围绕核心建模工具提供其他更多的价值,而BPML则遭到了很多工作流厂商的痛恨,因为一个统一的流程执行语言标准将使得他们重新竞争,而私有的流程执行语言已经将市场分割,他们想维持现状。因此,矛盾从一开始就存在了,BPMI组织原计划是建立一套业务人员能够自管理的流程系统标准,BPMN关注业务流程的描述和分析,它建立的模型是面向业务人员的,是不可以直接执行的,而BPML则由BPMN自动生成可执行的流程语言,交由IT系统执行,但是现在,BPML被工作流厂商们认为是对自己的一种威胁。
事实上,厂商们对BPML是多虑了。IBM和微软很快开始了反击,他们在2002年8月推出了BPEL-WS规范,一个与BPML有稍许不同的语言,基于新的WSDL标准。BPML与BPEL-WS之争也被看作是Betamax与VHS格式之争,Betamax品质优秀,但VHS得到数量众多的制造商支持,Betamax战败,于是BPML被消灭。
2005年,BPMI组织被OMG组织合并,BPML停止维护,2006年OMG组织正式通过BPMN1.0规范,2008年2月发布BPMN1.1。
记忆里,有那么多的规范、标准,从开始炒作的沸沸扬扬,到最后的逐渐淡出,不过几年光景。但BPMN却在2008年大爆发,得到了极大的普及。具有讽刺意味的是,BPMN的流行完全归功于那些当初反对BPML的工作流厂商们,恩恩,现在他们都改名叫BPMS厂商了。原因很简单,业务人员对IT执行流程的可视化和管理已经成为BPMS系统的关键,BPMI组织猜到了结局,却忘了猜猜自己。
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(Organization for 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所支持的三种基本类型的流程模型。
http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted on 2011-08-23 23:24
ronghao 阅读(2195)
评论(2) 编辑 收藏 所属分类:
Head First Process-深入浅出流程