Alfresco 发布 Activiti 项目——基于 Apache 2 许可的 BPM 引擎

  • Josh Long
  • 张龙

2010 年 5 月 25 日

话题:JavaSOA语言 & 开发架构文化 & 方法

本周一,知名的企业内容管理(ECM)系统提供商Alfresco Software 发布了开源的业务流程管理(BPM)项目——Activiti,该项目由 jBPM 创建者,前JBoss jBPM领导与 BPM 权威Tom Baeyens主持大局。前 jBPM 团队成员Joram Barrez此前也加入了该项目,成为 Activiti 的核心开发人员。长久以来,Alfresco 一直将 jBPM 嵌入到其产品当中,今后也将继续对其提供支持。最后,Alfresco 将在今后的产品发布中将 Activiti 纳入进来。

Activiti 是个全新、基于 Apache 2 许可的开源项目,提供了轻量级、嵌入式的 BPM 引擎并支持BPMN 2.0。在当今 BPM 市场中存在太多的规范,但没有一个能够解决 BPM 引擎或是工作流引擎所遇到全部问题。BPEL 最为人诟病之处在于限制太大,如果运行时模型需要构建非常复杂的流程时 BPEL 就帮不上什么忙了。更令人感到困惑的是,BPMN 1.0 出来后指定了一整套符号集来描述流程,但却没有说明执行语义,这与 BPEL 别无二致。很多厂商表示要构建能与 BPEL 进行双向转换的 BPMN 工具,但这是不可能的,因为 BPMN 中的很多东西都无法在 BPEL 中描述。

很多引擎都提供了其他选择,比如 jBPM。jBPM 提供了一个叫做 jPDL 的简单、私有的 XML 语法,可以手工编写该 XML 文件并嵌入到应用当中。

Activiti 采取的是另一种方式,它使用了 BPMN 2.0,后者定义了执行语义和可视化的流程描述。这为业务分析师和工程师们提供了一种标准、直观、双向的环境来解决流程的运行时展示问题。与 jBPM(事实上,包括任何优秀的工程项目)一样,Activiti 将流程模型从语言中解耦出来,这样就可以在该模型之上使用其他流程语言了。与 jBPM 不同的是,Activiti 并没有使用私有格式,因为私有格式还需要转换为 BPMN 2.0,而这一点容易给人造成困扰,它使用 BPMN 2.0 作为原生格式。

Activiti 还带有一个可视化的建模器(叫做 Acitviti Modeler),可以对非常复杂的图形建模。BPMN 2.0 使用起来也非常简洁和方便。虽说有些地方要比 jPDL 繁琐,但 Activiti 在 schema 中引入了“快捷方式”来解决这个问题。这些”快捷方式“最终能转换为合法的 BPMN 2.0,因此并不会表现出私有扩展的迹象。

Activiti 是轻量级的,能够轻松集成到现有应用当中,这与 Spring 框架的目标不谋而合。除了本身支持 BPMN 2.0 之外,我们还可以推测出该工作流引擎其他的应用场景:Spring Web Flow 根据网页导航描述工作流、Spring Batch 将工作流用于成批处理管道、Spring Integration 根据事件”推测“流程状态,诸如此类。SpringSource 已经任命Spring Batch项目的领导Dave Syer代表 Spring 社区参与到 Activiti 团队中,旨在将 BPMN 带给 Spring 用户。

想要尝试 Activiti 的用户可以看看这个10 分钟上手指南,如果想要深入了解 Activiti 请翻阅Activiti 用户指南。目前该项目是独立运作的——作为 Alfresco 的一部分,但很快就将创建自己的社区

查看英文原文:Alfresco Announces Activiti Project, an Apache 2 Licensed BPM Engine

JavaSOA语言 & 开发架构文化 & 方法