1. 首页
  2. >
  3. 技术信息
  4. >
  5. 技术文章

微服务架构下,工作流引擎Activiti5与jBPM5抉择

什么是工作流

工作流(Work Flow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。

简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。工作流有时解释为可以产生某种结果的一系列任务。即:根据与业务流程相关联的操作和任务的顺序所进行的文档或项目的自动转移

常用的工作流

JBPM5

简介Java Business Process Management(业务流程管理),覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的。Jbpm是公开开源代码项目,它使用要遵循Apache License.Jbpm在2004年10月18日,发布了2.0版本,并在同一天加入了Jboss,成为了Jboss企业中间件平台的一个组成部分,jbpm也进入了一个全新的发展时代。

Activiti5

Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。 创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。 Activiti是一种轻量级,可嵌入的BPM引擎。 它将提供宽松的Apache许可2.0,以便这个项目可以广泛被使用,同时促进Activiti BPM引擎和的BPMN 2.0的匹配,该项目现正由OMG通过标准审定。 加入Alfresco Activiti项目的是VMware的SpringSource分支,Alfresco的计划把该项目提交给Apache基础架构,希望吸引更多方面的BPM专家和促进BPM的创新。

  • Activiti用户手册: http://activiti.org/userguide/index.html
  • Activiti文档下载 : http://activiti.org/download.html

Activiti5除了有jbpm的大部分功能外,还提供更加强大的在线流程设计器:Activiti-Modeler

微服务架构下,工作流引擎Activiti5与jBPM5抉择

工作流的规范

  • 不论是JBPM还是Activiti他们都遵循BPMN标准
  • BPMN,BusinessProcess Model and Notation,业务流程模型与符号
  • BPMN2.0内涵
  • BPMN是一套流程建模的标准,主要目标是提供一套被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,直到最终用户的管理监控。
  • 提供了清晰而精准的执行语义来描述元素的操作。
  • bpmn规范还确保设计为业务流程执行XML语言,能够用这套以业务为中心的符号所可视化表示
  • BPMN2.0是由OMG组织提出并维护。
  • 主流参与厂商:IBM,Oracle等

BPMN被广泛接受,目前全球有70余个产品实现(OMG登记的)

Activiti5与jBPM5对比

微服务架构下,工作流引擎Activiti5与jBPM5抉择
  1. 从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。
  2. jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。
  3. Activiti上手比较快,界面也比较简洁、直观

Activiti实战

接口设计

微服务架构下,工作流引擎Activiti5与jBPM5抉择

重构在线流程设计器任务属性面板

微服务架构下,工作流引擎Activiti5与jBPM5抉择

流程进度图

微服务架构下,工作流引擎Activiti5与jBPM5抉择

工作流功能模块

微服务架构下,工作流引擎Activiti5与jBPM5抉择