activiti学习(四)

144 阅读2分钟

image.png 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

activiti中的一些概念

我们聊完了activiti中的流程定义和流程实例的区别,接下来看看activiti中为我们提供的一些功能。

BPMN2.0规范

为了描述流程定义,可以用JSON或者数据库表或者是XML等来保存流程信息。如果没有统一规范,那么我们使用框架的时候,就必须和框架强行绑定,各种api操作都必须根据框架的规定来调用。所以为了统一流程定义的规范,就有了BPMN规范。BPMN说白了就是一串xml字符串,规定了xml中必须的节点和属性,有了BPMN规范,我们在使用流程引擎的时候就不需要和具体的框架强绑定,交互只需要通过BPMN的规范文件进行。这样,在我们需要替换原先的框架的时候,只有新的框架能够兼容BPMN规范,那就可以无缝替换过去,十分简单平滑。而BPMN则是不同的公司讨论得出的结果,有时候我们开发者会觉得BPMN规范中包含了我们用不到的节点和属性。亦或是缺少了我们需要的节点和属性,这个时候就需要扩展activiti对BPMN描述文件的解析能力,包括后端执行的的节点逻辑。通常来说,如果你需要扩展activiti的节点信息的话,就必须用到activiti的内部api,这种方式就和框架耦合,算是比较难受的一个点。而且如果你需要用到图形界面做编辑器,那么需要扩展图形界面的绘图能力,这对大大提高了对开发人员的要求,这也是不小的知识负担。
BPMN中规定了事件,任务,子流程,网关等节点。作为流程编排的话,可以说是非常全面了,但是如果要将它用于审批,这些还远远不够,这个时候就需要自己扩展节点类型了。