流程引擎发展史

流程引擎发展史(Camunda / Flowable / Activiti)

比较有名的开源工作流引擎框架大概有4个,分别是:

  1. Activiti
  2. Flowable
  3. Camunda
  4. jBPM

社区热度对比图

avatar

这些几个框架历史悠久,有很多故事,在此重点比较一下:Activiti / Camunda / Flowable,因为这三个框架同宗同源,几乎都是从 jBPM4 之后衍生出来的。

随着国内越来越多的企业大量的开始使用工作流引擎框架,工作流引擎框架的选型也成为一个首要并且头痛的事,因为开源的工作流框架实在是太多了,用多如牛毛形如也不为过。从而使好多企业感觉无从下手去选型。因为从 API 层面看都差不多,由于领域专业性比较强深入内核去研究需要花费大量的时间和精力,所以在此重点介绍一下这几个引擎框架(Activiti / Camunda / Flowable)的发展历史,以便小白可以快速的选择适合自己的当前现状的流程引擎。

商业化

  1. Camunda 已经推出了商业版和开源版本。
  2. Flowable 已经推出了商业版和开源版本。
  3. Activiti 持续开源

Activiti 与 Camunda 发展史

2012年末,Alfresco 的 Activiti BPM 小组正经历一系列的转变:Tom Baeyens —— Activiti 最初的创建者和开发者(宣布担任 Effektif 云 BPM 启动的现任 CEO )——将不再领导 Activiti 工程,并已决定在任职不到三年后离开 Alfresco。Camunda 是 Activiti 最大的贡献者之一(除 Alfresco 以外),同时也是它一个主要的执行咨询合作伙伴。Camunda 表示 Activiti 可能太拘束于 Alfresco 对以文档为中心的工作流的需求(这个也是BPMN约束使然),而忽视了 Activiti 起步时的更为普遍的 BPM 平台。Camunda 宣布他们正从 Activiti 分裂出一个新的开源工程,那就是 Camunda BPM。

这在开源 BPM 界无疑是重磅新闻。BPM 界早已存在几大巨头,比如 Activiti, BonitaSoft,jBPM 和 Processmaker , 我们并不清楚是否还有足够的开源 BPM 软件需求以保证新的加入者的加盟。同时,两大阵营必然会有些心生不快。在这个小社会中,树敌的代价将是你无法承受 的,因为你永远不会知道在未来几年中你终将要和谁合作。这样的离别被形容为“悲伤”,不管是在 Camunda 他们的公告中还是在 Joram Barrez(Activiti 5/6版本的核心开发者,目前已经加入 Flowable 阵营)的邮件中也把 Activiti 和 Camunda 置于直接敌对的位置,在现有 Activiti 用户和未来业务上进行竞争。

Signavio——其流程建模人员深度整合 Camunda BPM——下发了一个新闻稿声明 Camunda BPM的分裂将对 Signavio 的客户有利,并且 Tom Baeyens 给出了不错的报价记住 Signavio 刚为 Baeyens 的新启动提供了资金。这就像是 BPM 的《冷暖人间》。

Camunda BPM,正如 Activiti(jBPM就此而言) 并未声称要做零代码 BPM 组件——有些人可能会辩称即使他们声称是,他们也不是——但 BPM 引擎和功能的目的是嵌入业务线的企业应用程序中。他们看到零代码市场在非战略性流程中是通用工具,而且很有可能通过外包或云解决方案(Effektif,任何一 个?)能同样好甚至更好地提供服务反之,Camunda将目标定位于:IT占据竞争优势,而 BPM 仅仅是一个更大的应用中的一部分功能。这并不意味着这里对非技术性业务分析师毫无意义:BPMN 作为连接业务与 IT 的桥梁,Camunda 则把他们之前专有的 BPMN 往返能力带到新的开源工程中去。他们在 Eclipse下的 BPMN 插件中为业务分析师提供了一种易于使用的建模器,或与Signavio,Adonis和其他建模工具实现往返。早在2012年6月,Camunda博客就讨论过如何使用 Camunda BPM 整合几个不同的 BPMN 建模器,尽管他们明显更青睐 Signavio。

Camunda BPM 是一个在 Apache 许可下完全开源的 BPM 堆栈(Eclipse设计者、开发者UI的框架是使用Eclipse公共许可)。社区(开源)版通常是最新的版本,注意:一些商业 开源供应商把他们的社区版本归入到商业版中以提高收益,而企业(商业)版在接收进一步的测试和集成上总是稍慢一步。企业版中唯一专有的可用功能就是应用服 务器(WAS)集成和 Cockpit Pro,一个监控管理工具,虽然社区版中有一个 Cockpit Light 功能。你可以在这里看到一个社区&企业特征的对比和一个更为完整的清单。除非你从一开始就被WAS束缚了或者需要相当多的支持,社区版是可能足 以让你开始初期运行的,这样从开源到商业版的过渡更为容易。

然而,问题并非真的是 Camunda 是否将对 Activiti 代码基做出巨大贡献(他们确实做了),而是他们是否能维持并建立一个 Activiti 的开源叉形指令。他们内部有一些好的人选提供——负责核心流程引擎架构师的 Daniel Meyer,技术咨询/产品管理视图的 Bernd Rücker,BPM 业务方面的 Jakob Freund 和一个具有 Activiti 和 Camunda 代码基经验的开发团队。他们在 Activiti 开源社区和开发中展现出卓越的领导力,所以很可能有能力运作一个 Camunda BPM 开源社区,但是需要确保他们用足够的资源来保持它的重要地位。在德国,早已有一个 Camunda社区,但那并不同于开源社区,而且那只是在德国,所以他们还有许多工作要做。

Camunda BPM 的优势

Camunda BPM 是一个灵活的工作流和过程自动化框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中。Camunda BPM与Java EE 6集成,并可以与Spring Framework完美匹配。

  • 科学证据表明 Camunda BPMN引擎性能更好
  • 除了BPMN以外,还支持企业和社区版本中的 CMMN(案例管理)和 DMN(决策自动化)
  • 不仅带有引擎,还带有非常强大的工具,用于建模,任务管理,操作监控和用户管理,所有这些都是开源的
  • 既可以用作独立的流程引擎服务器,也可以用在自定义Java应用程序中
  • 还提供REST API,以便非Java开发人员可以构建连接到远程流程引擎的应用程序
  • 为了实现高可用性和可伸缩性,可以依赖于一个共享数据库在分布式集群上运行,可以进行微服务的编排
  • 使用 ISO 标准 BPMN 2.0 定义工作流程,为技术和非技术用户提供通用语言
  • Camunda Modeler 使业务分析师可以直观地定义工作流,并与开发人员一起协作实际部署
  • Camunda Optimize 为业务利益相关者提供实时监控和报告,因此不会对流程提出任何疑问
  • 还包括决策模型和表示法(DMN)决策引擎,以便业务用户可以定义和维护直接与工作流引擎集成的可执行业务规则

Camunda BPM平台还提供了一套丰富的、围绕BPM生命周期的组件:

  • 流程实现和执行组件:camunda engine(负责执行BPMN 2.0流程)、REST API、Spring/CDI集成
  • 流程设计组件:camunda modeler、camunda cycle
  • 流程操作组件:camunda engine、camunda cockpit
  • 人工任务管理组件:camunda tasklist
  • 其他组件:camunda-bpmn.js(完整的BPMN工具包)、camunda BPM incubation(新创意孵化器)

Camunda BPM官方网站
Camunda 各种模型设计工具
camunda-bpm-spring-boot-starter
Camunda BPM Examples

----本文结束 感谢您的阅读----