Camunda BPM 平台试用感受

新年第一篇文章,谈一下最近对基于 BPMN 2.0 标准实现的 Camunda BPM 平台的使用感受。简单地说,作为一个流程自动化引擎,Camunda 应该是比较成熟的,可以嵌入到流行的 Java 应用服务器中;然而,作为一个流程开发平台,集成度还比较低……

简单介绍一下,Camunda BPM 平台是一个老牌的基于 BPMN 2.0 标准实现的 BPMN 自动化执行流程,最初的开发者是基于 Activiti 分支开发的,而 Activiti 则是基于更早前的 jBPM 流程引擎(现在是归属 JBoss 旗下)。可以说目前流行的开源的三大 BPMN 实现的流程自动化引擎都和最初开源的 jBPM 有一定的联系。

Camunda 的使用较简单,直接按照 Getting Started 中缩写的内容基本上两小时就可以编写完它的例子。其中使用到的工具有 Camunda Modeler、Eclipse、Camunda Server 等。虽然 Camunda BPM 称自己是一个平台,但给人的感觉更像是一个实现 BPMN 平台的程序库,很多内容还是需要自己手写。

归纳一下,一般的流程的开发过程如下:

  1. 模型设计:使用 Camunda Modeler 定义模型,并输出 bpmn 文件;
  2. 页面设计:编写页面支持流程的显示、输入、跳转;
  3. 程序编写:利用 Camunda BPM SDK 编写 Java 程序:
    1. 使用 SDK 提供的方法编写代码初始化;
    2. 调用 bpmn 文件以应用设计好的流程;
    3. 生成 war 包;
  4. 流程运维:由运维人员部署到 Java 应用服务器(例如 Tomcat )上。

优点:

  • 使用比较灵活:能够整合到现有的系统中作为插件存在,能够自己决定部署的方式;
  • 标准支持全面:基本上完全支持 BPMN 2.0 标准,且配套文档比较丰富。

缺点:

  • 至少需要 5 个不同的人员(模型设计、页面编写、程序编写、运维以及集成人员)分别使用不同的工具进行分工配合;
  • 工具之间的变量传递靠文档约束,工具之间没有变量提示,例如需要看完文档才了解变量传递和使用方法。