本周一,知名的企业内容管理(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