Activiti 5.0 GA发布——基于Apache 2许可的BPMN 2引擎

上个月,Alfresco发布了Activiti 5.0 GA——基于Apache 2许可的BPMN 2.0实现。InfoQ有幸采访到了该项目领导Tom Baeyens一探究竟。Tom还是jBPM项目的创建者和前任项目领导。

Activiti项目是目前市面上唯一一个基于Apache 2许可的BPMN 2.0实现。作为一个标准,BPMN 2.0因统一了工作流社区而声名鹊起。BPMN 1.0为业务流程建模定义了一个标准,同时还提供了众多定义良好的工作流模式。BPEL 1.0则是另一个标准,定义了运行期中工作流的执行语义。目前,厂商已经提供了BPMN 1.0工具以及BPEL执行引擎,但问题由此产生,因为这些工具可以对BPEL无法描述的BPMN 1.0流程进行建模,这限制了BPMN的应用。BPMN 2.0则通过制定模型语义和执行语义解决了这个问题。

InfoQ:什么是工作流,普通的Java开发者为何要关注工作流?其使用案例如何?

Tom Baeyens:所谓流程,就是对BPM系统(如Activiti)所能执行的一系列步骤的描述。流程的基本属性是他们可由一张图表示出来,能以有向图的形式展现出步骤与转换关系。在几乎所有的业务应用中,需求都包含了高层次步骤的序列。将这些步骤抽取到流程中会得到清晰、简化、易于维护的应用。Activiti包含了大量的步骤,如用户任务、定时器等等,这些步骤在流程中是很容易使用的,但如果想要自己编写Java代码来实现就很困难了。

InfoQ:Activiti是嵌入式的么?独立使用的?独立使用或是以嵌入式方式使用有哪些区别呢?

Tom Baeyens:Activiti可以嵌入到任何Java应用中,对于Java开发者来说,Activiti只不过是个jar文件而已,只需放到CLASSPATH下即可。但Activiti还可以独立服务器的方式使用。

InfoQ:我们为什么需要使用Activiti?不是还有其他的BPM引擎么?

Tom Baeyens:Activiti是最容易上手的引擎。我们确信所有阻碍你将其嵌入到应用中的障碍已经一去不复返了。我们提供了一个示例程序,可以让你在很短的时间内运行起Activiti。Activiti是透明的,这意味着它并没有什么特别之处。开发者知道他们用的是什么,如何用起来,并且能完全控制好Activiti。这与传统的BPM方式不同,后者更加关注于业务用户,并没有考虑到开发者的感受。对于运行时来说,我们紧密集成了Java应用与Activiti,而传统的BPM产品则是自成一体的,很难与应用集成起来。Activiti的社区颇具活力,很多公司都开始将自己的产品与Activiti集成起来了。如果你使用Spring Integration或是ESB,那就非常棒了,因为他们已经与Activiti实现了集成。感兴趣的读者可以查看一下团队的花名册,了解一下项目的贡献者,看看这些贡献来自于何处。

InfoQ:Activiti下一次迭代的路线图如何?

Tom Baeyens:目前,我们的发布周期是以月为单位的。12月1日,我们发布了5.1, 1月1日发布5.2,以此类推。我们正在计划一些激动人心的特性,如规则集成、Web Service集成、建模器中的Activiti类型插件等等。感兴趣的读者可以查看我们的路线图了解详细信息。

InfoQ:要想上手Activiti,有没有什么推荐的方法呢?它与其他框架(如Spring框架、REST、Mule或是其他ESB、Java EE 6以及企业内容管理系统)集成的很好么?

Tom Baeyens:要想上手Activiti,我推荐大家看一下示例程序和用户指南。如果是首次使用,那么我们建议你从小处着手。一旦掌握了,那么你需要花费几周时间才能构建好应用完整的功能原型。在Activiti引擎的架构中,我们已经集成了所有现有的Java环境和框架。我们很欣喜地看到很多公司在帮助我们构建这些集成。比如说SpringSource,整个应用可以通过在Spring的context文件中声明Bean来实现配置。甚至还包含平滑的事务管理集成。另外就是MuleSoft。他们贡献了Web Service调用,保证可以将Activiti引擎平滑地嵌入到其产品当中。此外,还有一个开箱即用的REST接口。在下一版本中,我们计划增加关于如何在应用服务器环境中配置并运行Activiti的相关文档。代码基本已经写好了,但我们希望在将这些特性公开到文档前搭建好自己的的CI环境。

InfoQ:一般来说,Activiti和工作流的目标市场是什么?这些工具会简化业务分析师与开发者的工作么?

Tom Baeyens:团队使用BPM平台如Activiti的方式大相径庭。一些团队只有开发者,他们只是将引擎嵌入到自己的应用中并编写流程。在其他环境中,除了开发者与系统管理员外还涉及到业务人员。每个组织都有自己的组织方式。借助于Activiti Cycle,我们现在拥有了一个协作环境,所有人都可以在这个环境中彼此交互与协作,无需强制使用特殊的工作方式。

InfoQ:如果遇到问题去哪问呢?

Tom Baeyens:我们的用户论坛是提问的最好去处。

InfoQ:有什么特别的原因要去使用BPMN 2么?为何要从私有的标记语言如jBPM的jPDL转换到BPMN 2呢?

Tom Baeyens:BPMN 2.0好的一点是整个业界都围绕着这一标准进行操作。在这之前,所有工具和引擎都在使用自己的私有语言,现在大量的工具都兼容于Activiti,因为我们支持BPMN 2.0这一标准。

InfoQ:如果使用BPMN 2有问题,那么可以定制Activiti并添加新的行为么?

Tom Baeyens:创建jBPM的一个主要目标就是创建可插拔的活动。这意味着我们可以将新的步骤插入到流程图中并加以配置。我们通过流程虚拟机(PVM)成功实现了这个目标。现在,Activiti也基于流程虚拟机这个原则。但这次我们将同样的活动可插拔性这一概念延伸到了工具上。Activiti包含了一个基于Web的建模器和一个图形化的流程设计器Eclipse插件。现在的目标是你只需使用标签名和其他信息将实现了运行期行为的类注解起来就行了。目前,设计器Eclipse插件已经可以从类中加载这些信息,将新的活动类型添加到面板中并向用户提供漂亮的表单来输入这些活动的详细配置信息。

查看英文原文:Activiti 5.0 GA, the Apache 2 Licensed BPMN 2 Engine Released

你可能感兴趣的:(Activiti 5.0 GA发布——基于Apache 2许可的BPMN 2引擎)