InfoQ

新闻

我们能从BPMN 2.0期望什么?

作者 Boris Lublinsky译者 胡键 发布于 2008年5月5日 上午9时18分

社区
Architecture,
SOA
主题
业务流程管理,
工作流/业务流程管理,
业务流程建模
标签
业务/IT整合,
BPMN,
商业模式

业务过程建模符号(BPMN)是被当今所有过程设计工具都采用的流行符号。BPMN是OMG维护的公共标准,已广泛地被不断携新产品进入市场的商业和开源BPMS工具厂商共同接受。例如,BEA的AquaLogic BPM 6.1 – BPMN(http://dev2dev.bea.com/blog/atoussai/archive/2008/04/aqualogic_bpm_6_1.html)。查阅InfoQ中关于BPMN的帖子(http://www.infoq.com/bpmn)。

尽管其已被广泛采用,但是BPMN工具仍有许多令人难以忍受的缺陷:

  • BPMN是一个图形符号,不支持标准化的元模型。这导致BPMN工具之间几乎没有互操作性可言。尽管可以使用XPDL来存储和交换过程图,但是并非所有的BPMN工具都支持这样做。
  • BPMN是一门设计语言,一般被翻译成业务过程执行语言(BPEL)。正如Bruce Silver指出的( http://www.brsilver.com/wordpress/2007/11/28/roundtripping-revisited/ ),“面向图形的(graph-oriented)BPMN模型——其中,你可以将流程导向任何地方——与面向块的(block-oriented)BPEL之间的不匹配”造成了这两种语言间相当数量的不兼容,这使得在很多情况下这种翻译具有挑战性。“BPMN规范试图为很多图模式(diagram pattern)描述简单的BPEL映射,但是长期以来人们认识到有些模式肯定无法按BPMN规范中描述的方式映射。那些对以简单映射为基础的BPEL翻译有效的BPMN工具,在BPMN没有严格按面向块(block-oriented)风格绘制时,会给用户报大量的有效性(Validation)错误。”结果是,大部分的工具只提供BPMN到BPEL翻译(不是双向工程),甚至连这种受限方式也极少提供真正可执行的代码。

Antoine Lonjon的白皮书(http://www.omg.org/w-new/bpmn.htm)给出了BPMN 2.0标准主要目标的纲要,其与Bruce Silve的BPMN愿望清单( http://www.brsilver.com/wordpress/2008/03/08/wish-list-revisit-revisited/ )类似。其中最重要的就是创建一种BPMN交换格式(除了现有的XPDL之外)。根据Sebastian Stein(http://www.arisblog.com/2008/04/24/where-is-bpmn-heading-to/)的说法:

就像回到了UML 1.x时代,图形模型没有交换格式。然而,BPMN甚至更糟。它连模型的内容交换格式(因此没有UML 1.x中类似的XMI)都没有。BPMN 2必须解决这个问题,引入一个涵盖模型内容和图形布局的交换格式。

问题的可能解决办法之一是使用业务过程定义元模型(BPDM)( http://www.omg.org/technology/documents/br_pm_spec_catalog.htm#BPDM )作为BPMN符号的相容元模型。这不仅解决了交换格式的问题,而且还明确定义了BPMN执行语义。尽管这是非常强大的解决方案,但是它引入了许多新概念。新规范要解决的其他问题包括:能指定多种启动过程的方法,支持非中断中继事件(non aborting intermediate event),半结构行为(semi structured behavior)等,这些都会潜在地使BPMN更复杂。

尽管要到8/9月间OMG才会给出推出BPMN 2.0的时间表,但是关于它可能方向的初始公告在网络上反响强烈。根据Sebastian Stein(http://www.arisblog.com/2008/04/24/where-is-bpmn-heading-to/)的说法:

引入更多新鲜可能有悖于BPMN目前的优点——简单。这会增加BPMN建模的学习曲线,可能不利于进一步的采用。

Vishal Saxena(http://vishals.blogspot.com/2008/04/bpmn-20.html)重复了Sebastian的观点,他写道:

首先,让我来说说在BPMN 1.0(1.1)中是什么了不起的东西使其成为过去几年内采用率最高的规范之一,姑且不论其他建模标准为了这一目标奋斗了更长的时间。第一和最重要的原因就是BPMN的简单性——或者说得确切点:它使简单的事情保持简单。举例来说,如果我想对取现金过程建模,我能在极短时间内通过少量和不那么陡峭的学习曲线做到。许多人发现这就像他们在画板上用别的什么画流程图一样简单,比方说Visio。

在考虑所有这些新特性时,关于BPMN的角色的问题也需要被提出。一方面,有些厂商(如Intalio)已经引入了可执行BPMN(完全使用BPMN设计过程,然后在幕后产生BPEL作为可执行部件)(http://www.infoq.com/news/2007/10/intalio-bpms-5);另一方面Jean-Jacques Dubray( http://www.infoq.com/cn/articles/seven-fallacies-of-bpm)认为,假定“业务分析人员能从过程模型中创建可执行解决方案”是业务过程管理的谬误之一。除了一些最简单的过程,如订单批准,实际的BPM实现一般都需要涉及IT,因此无需(绝大多数情形是不能)直接运行BPMN。这种情况下,更重要的问题是,过程实现时所作的变动如何与初始BPMN模型同步。

那么,BPMN未来的角色究竟是什么?许多实践者仍在讨论这个问题。但是,看起来它必须在BPMN标准新版本发布前得到回答。

查看英文原文What can we expect from BPMN 2.0?

相关厂商内容

技术讲座:可视化管理应用服务器集群的新途径(5月27日北京)

开源框架OperaMasks 2.0系列开发教程

SOA中国关键任务论坛(5.22北京)Free电子票下载

相关赞助商

5月6日至5月22日全国8站,BEA Dev2dev TechDays与您一起探讨Java2SOA最新技术变革。即刻免费报名参加,获赠BEA/Adobe软件和SOA书籍。

没有回复

回复

独家内容

开发者眼中的Android手机平台

在四月份的Beijing Openparty上,InfoQ中文站特邀编辑仝健对三位开发者进行了采访,请他们从开发者角度谈一下对Android的认识和感觉。

智能服务契约带来的巨大伸缩性

可伸缩性并不是无状态设计倾向假设的那个布尔值(译注:一般都认为无状态设计的伸缩性好,此处暗示布尔值为True)。Udi的团队使用服务契约来处理多维度的伸缩性问题,避免了二次失败。

使用NetKerne实现REST风格的ESB

Jeremy Deane对使用NetKernel来编写REST风格的ESB应用做了一番深入的研究。他详细地剖析了选择商业ESB应用的决策过程,以及最终如何使用NetKernel来实现该应用。

多个敏捷团队之间的版本控制

当多个敏捷开发团队在同一个代码库上进行工作时,如何在保证混乱最小化的同时,还能在每个迭代结束时拥有一个干净的、可发布的软件版本?Henrik Kniberg在本文中罗列出了在“Scrum and XP from the Trenches”迷你书中所使用的策略要点。本文并非为版本控制专家编写,而是为我们这些希望进行简单、有效的协作的人所准备的。

想快快喝下Google果汁——Guice吗?

依赖注入出现已经有一段时间了,很多团队都在重构自己的应用以利用DI。但这是一件麻烦的事情。在这篇文章中,Paul Hammant说明了如何将现存应用从单件嵌套设计转为完全成熟的DI设计。

Scrum实施情况调查之案例分析

前不久,InfoQ中文站上发表了一篇文章:Scrum在中国——企业实施情况调查实录,引起了激烈争论。在本文中,作者通过对调查实录中案例的分析诊断,探讨了敏捷开发方法的概念及应用。

Jim Marino与Meeraj Kunnumpurath专访:关于SCA和Fabric3

BEA发布了在WebLogic 10.3中支持的SCA技术预览版,它是以开源的Fabric3运行时为基础构建的。InfoQ对Jim Marino和Meeraj Kunnumpurath进行了专访,前者是BEA Systems的技术主管,后者是VocaLink的首席技术人员。我们就他们对SOA和SCA的看法,VocaLink实施SOA的方法和这个技术的关键优势进行了讨论。

Ruby调试器一览

在Ruby世界中流行着一个误解:Ruby没有调试器。这是明显的错误——Ruby不但有调试器,还有供调试器用的GUI和API。InfoQ仔细调查了Ruby世界中调试器的现状——发现Ruby的调试功能支持已经很好了。