jBPM4 与 BPMN2 将于 2010 年 1 月联姻

  • 马国耀

2009 年 12 月 21 日

话题:SOA开源DevOps语言 & 开发架构文化 & 方法

继 11 月 5 日 jBPM v4.2 版本发布之后,jBPM 又有了新的动向,Joram Barrez 在他最新的博文中称:

自从今年夏天开始,我们就着手在 PVM 平台上实现对原生 BPMN 的支持……在本博文中大家将能窥见 BMPN2 当前的执行进展……它将整合在 jBMP4.3 中发布(原定日期是 2010 年 1 月 1 日)……

这对流程开发社区来说无疑又是一大兴事,因为广大业务流程开发人员不再需要将由 BPMN2 建模的流程图转换成 jPDL 等,而直接可以在 jBPM 平台上运行。

为什么说 jBPM 与 BPMN2 的联姻是一大喜事?这需要先了解 BPMN 和 jBPM 天生支持的语言 jPDL 之间的差异。

  • BPMN 即业务流程建模符号(Business Process Modeling Notion),它是用一种类似于流程图的图表形式来描述业务流程的一种方法,目前由对象管理组织(Object Management Group OMG)进行维护和管理。jPDL(JBoss jBPM Process Definition Language)是构建于 jBPM 框架上的流程语言之一,它并非公开的标准但却与 jBPM 有这天然的亲缘关系。 BPMN2 是其升级版,新增了很多特性,如提高了符号的准确性、定义了行业标准的交换格式、提供了一系列扩展点以及对编排的支持等。
  • jPDL 是 jBPM 的原生执行语言,它提供了任务(tasks)、等待状态 (wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的方式直观地描述流程。

JBOSS 社区中给出了 BPMN 与 JPDL 之间的差别简化如下:

  • BMPN 是一个公开的标准,而 jPDL 专属于 jBPM
  • BPMN 更加侧重于流程的建模,是类似于 UML 的建模语言,而 jPDL 侧重于流程的执行,它是业务流程执行语言
  • BPMN 与实现无关,而从 Java 开发者的角度来看,JPDL 则更简单。

然而,jPDL 与 BPMN 之间也有很多共同之处,比如它们都使用直观的建模视图,用 XMl 的形式描述业务流程,解决的是业务流程方面的问题。正如 Joram 在博文中提到的:

……我们在 jBPM 中投资 BPMN 是很自然的事情,熟悉 JPDL 的人学习 BPMN 通常毫不费力,因为很多结构和概念都是系统相同或相通的。事实上从高层次看来,BPMN2 和 JPDL 在概念上解决的是相同的问题……

在博文中 Joram 给了一个简单的示例,在Signavio流程编辑器上建模,并直接部署在 jBPM 之中,然后用纯 Java 代码测试该流程。从这个例子中可以看到 jBPM 的新版本对 BPMN2 的平滑支持。由此可以看出 jBPM 近期动作频频,如 PVM、支持 Web 的流程 IDE、BPMN 以及与 Spring 的整合,InfoQ 对 jBPM4 发布以来几次动作总结如下:

  • TheServerSide总结了 jBPM 的第一版发布(2009-07-11),称它引入了新的 PVM 概念,使之支持多种业务流程语言:
    • 支持 Eclipse 中基于 BPMN 的图形化流程设计工具
    • 将基于 Command 的服务做为主要客户端 API
    • 活动实现 API 的解耦
    • 便捷增加客户化活动
    • 数据库和流程语言的分离
  • V4.1(2009-08-31)中增加了 Signavio 的 Web 流程编辑器 
  • V4.2(2009-11-05)中增加了对 Process ClassLoader 的支持和服务实例的版本控制。

那么,V4.3 除了在 V4.2 的基础上增加了对 BPMN2 的支持,还将为我们带来哪些新的特点呢?我们翘首期待。

SOA开源DevOps语言 & 开发架构文化 & 方法