CMMN说明

什么是CMMN标准

   Cmmn引擎目前最新的版本是1.1版本,发布于2016年。目前支持该规范的专业级工作流框架有Flowable/盘古BPM工作流平台。CMMN属于OMG公司发布的规范。OMG公司一共发布过三个标准,分别对应BPM/DMN/CMMN。目前Flowable实现了BPM和CMMN(没有对标准的XML进行实现,因此使用Flowable框架的CMMN可能会不兼容其他的标准产品)。盘古BPM工作流平台实现了BPM/DMN/CMMN。

     BPM/DMN/CMMN可以使用下图进行进行描述。

BPMN CMMN DMN说明

BPMN侧重的是流程管理。也就是平时所说的流程。BPMN更多的使用场景是预定义一些固话的流程。当流程有变化的时候,需要重新对流程进行绘制、打包和发布。相对而言比较死板。BPM对于流程的走向其实已经提前规划好了。

CMMN侧重的是案例,比如预定义一些节点元素,这些元素的执行没有严格的先后顺序。可以并发去执行,也可以让其有先后顺序。BPM对于节点有严格的先后执行顺序,比如A节点执行完毕之后,才可以执行B节点。如果A节点没有执行,那么流程是永远不会执行到B节点的。

 CMMN标准没有这个先后顺序一说,均是以案例为单元块执行,比如当前的单元块中定义了3个节点,当实例创建的时候,3个节点同时创建。没有严格的先后顺序。当任意一个节点完成的时候,并不会影响其他节点,也不会影响当前的单元块。开发人员可以通过特定的API直接完成这个单元块,这样改单元块中的所有节点会被强制结束。对于单元块的执行,CMMN标准并没有给出具体的实施方案,盘古BPM工作流平台提供了两种解决方案,①:可以通过特定的API去触发;②:可以通过消息方式自动化触发。当然了用户也可以在案例中配置自动完成条件,这样当条件满足的时候,该单元块会立即结束。

DMN侧重的是决策。比如有些逻辑计算比较麻烦并且相对而言比较独立,这个时候就可以将计算的逻辑放到DMN引擎中。Flowable框架没有实现DMN标准中定义的DRG和DRD,盘古BPM工作流平台实现了该标准。

BPM标准比较固话,CMMN标准比较动态化,DMN侧重于计算

 cmmn说明   

 

上图清晰的描述了BPM/DMN/CMMN三个标准的职责以及所干的事情。

CMMN标准中的元素

CMMN标准中的元素类型大致如下:

cmmn设计器

CMMN表中的元素大概有如下几种
    里程碑
    案例
    抽象任务、定时器任务、人工任务、服务任务、脚本任务
    哨兵
   案例任务
除了里程碑、案例、哨兵、案例任务几个元素,其他的元素与BPM标准所定义的一样。只是叫法或者行为不同而已。
任务
 

BPM/DMN/CMMN三个标准转换

 BPM/DMN/CMMN三个标准可以配合起来使用,也可以独立进行使用。如下图所示。

 BPM/DMN/CMMN三个标准

BPM中使用了一系列的网关,这个时候可以考虑使用DMN决策引擎代替。

BPM中使用了大量的事件,则可以优先考虑使用CMMN。

BPMN中有一系列的加签、自由流程,则优先考虑使用CMMN。

CMMN中如果案例内的元素都是有严格的执行顺序,则优先考虑使用BPM标准。

技术支持:盘古BPM工作流平台

相关教程