业务流程规则平台解决方案

前言

如何搭建一个功能强大的业务流程规则系统?
这个世界是复杂的,没有放之四海而皆准的真理,面对企业内部纷繁复杂的管理对象,要打造一个功能强大的业务流程规则系统,单一的标准和工具肯定是无法适应这个局面的,因此需要从模型标准、技术引擎、框架结构3个层次维度思考才能更好的选型、构建业务流程规则系统。
首先我们需要梳理一下目前企业内部管理系统都采用哪些主流标准和模型?它们有那些的相关技术规范?主要的应用场景是什么?它们之间的关联关系是什么?它们如何组合应用 ?我们的构建思路,对应的技术引擎选型,如何系统架构等一系列问题。在这里插入图片描述

1.流程规则标准体系

流程规则模型标准
规则是事物运行规律所遵循的法则,企业内部规则包括:各种规章制度、流程、操作规程等,内含决策、决策集、业务术语、知识模型、知识源、知识体系,规则流等规则元素,这些规则元素又可以构成复杂的流程规则,目前企业流程规则模型主要采用如下3种模型标准:
业务流程模型:业务流程模型(如BPMN)业务处理过程中,在决策发生的地方通过定义特别的任务或活动描述决策是如何协作的。
决策逻辑模型:决策逻辑(例如DMN)可以用来做单个决策的具体逻辑定义,例如业务规则,决策表,或可执行的分析模型。
案例管理模型:案例管理模型(例如CMMN)以动态信息和关系为中心,用于捕获工作方法,这些工作方法基于处理需要各种活动的案例,这些活动可能以不可预测的顺序执行,以应对不断变化的情况。

流程规则相关标准和模型
1.BPMN:BPMN是一套流程建模的标准,主要目标是提供一套被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,直到最终用户的管理监控。
2.DMN:DMN是决策模型和符号(Decision Model and Notation)的英文缩写,是由BMN背后的组织OMG管理的一个标准。
通过一种独立于供应商的图表语言(业务规则引擎语言DSL),使企业能够掌握驱动其自身业务运作的逻辑。
3.CMMN:CMMN是一种图形符号,用于捕获基于处理需要各种活动的案例的工作方法,这些活动可能以不可预测的顺序执行以响应不断变化的情况。使用以事件为中心的方法和案例文件的概念,CMMN扩展了可以用BPMN建模的界限,包括结构化工作量减少和知识工作者推动的工作量。使用BPMN和CMMN的组合允许用户覆盖更广泛的工作方法。
4.PMML:预测模型标记语言(Predictive Model Markup Language,PMML)是一种利用XML描述和存储数据挖掘模型的标准语言,它依托XML本身特有的数据分层思想和应用模式,实现了数据挖掘中模型的可移植性。

2.引擎选型

流程规则相关标准和模型引擎
目前流程规则模型标准除了BMPN有非常成熟的开源引擎和社区,DMN、CMMN3、PMML并没有独立的开源引擎。
1.BPMN:目前支持BPMN标准的开源工作流引擎已经非常成熟,比较有名的开源流程引擎有jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,也是使用最多的引擎,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。开发低代码平台、OA系统、BPM软件均需要流程可视化功能,而流程可视化核心是流程引擎和流程设计器。
2.DMN:目前以DMN标准的规则决策系统大都是基于大名鼎鼎的规则引擎Drools为基础进行构建的,没有完整的开源版本,都是商业化产品。目前可以结合camunda提供的DMN设计器和Drools DMN组件作为计算后台服务搭配使用,完成对DMN的设计及运行
3.CMMN:目前CMMN标准的开源引擎由camunda以及flowable作为对BPMN适配场景的补充应用,并在此基础上完成对CMMN的支持。可独立使用其CMMN的引擎进行无规则流程结构体的运行。
4.PMML:PMML是对机器学习模型的定义,其主要意义在于复杂的模型实例进行计算并完成对模型推导对计算过程,属于人工智能对分支之一,随着大数据及AI新型互联网行业对崛起,各个语言分表构建了自己对PMML模型的支持,java语言有jpmml对其的支持,python语言有pypmml的支持,在大数据行业中有 Spark 对其完成支持。

独立的规则引擎平台的优势

  • 业务规则和应用系统解耦,方便业务规则的集中管控
  • 独立规则引擎优势
  • 采用自然语言定义,技术门槛低,业务人员也可以使用
  • 业务发生变更时,业务人员可快速进行调整,加速企业响应速度

独立的规则引擎平台可以应对更复杂的场景
独立的规则引擎平台提供更多的节点支持,适应更多的业务场景,方便扩展,能在更高维度配置规则发挥灵活调度和流程自动化的作用,而不是做为工作流规范的补充,那样规则会仅局限于工作流本身。
在这里插入图片描述

业务流程规则系统技术引擎选型
在这里插入图片描述

CMMN组件

  • 目前支持BPMN标准的主流工作流引擎包括Activiti、 Flowable、Camunda、JBPM等,其中Flowable、Camunda、JBPM支持DMN和CMMN节点,但结构紧耦合。
  • CMMN可以做为BPM节点,适应更多的复杂流程场景,比如知识密集型节点,目前Flowable、 Camunda支持CMMN标准。

PMML组件

  • 目前Flowable、 Camunda 、JBPM支持DMN标准可以定义DRG规则流程图,但DMN不能独立使用,没有独立的引擎。
  • DMN构建了一整套完整的决策、知识、知识服务、数据模型定义、脚本执行语言扩展、FEEL表达式语言等规则元素。

建议将BPMN、DMN打造成完全独立的业务流程平台和规则引擎平台,将CMMN做为业务流程平台的功能组件,将PMML做为规则引擎平台的功能组件,再通过接口或服务的方式将2者集成在一起形成业务流程规则系统,2个平台可以单独使用也可组合使用。基于它们构建的业务流程规则平台结构粗粒化、松耦合的完全符合目前主流的微服务架构,搭配使用可以满足更为复杂的业务场景需求。

3.业务流程规则系统框架结构

在这里插入图片描述

流程管理平台功能建议方案

  • 支持遵循BPMN2标准的流程管理, 包括流程版本变量,流程节点表单设置,表单的权限设置,流程任务通知,催办,代办,转化, 并行会签、 串行会签、 补签, 子流程, 同步任务, 多实例任务,人工任务、 消息任务、 邮件任务等, 任务多级分发与汇总、 任务追回、任务层层驳回,任务自由跳转等中国特色的流程需求。能满足企业复杂的流程应用需求。在流程管理上, 不但要结合在线设计的复杂表单, 还需结合本系统或其他系统其他模块的功能表单一起进行业务审批的工作。
  • 支持可视化的流程监控管理、 完全独立的流程引擎服务,可与其他系统无缝集成、支持在线流程定义及版本管理、支持第三方表单集成、支持多维度组织结构、 支持流程的导入与导出功能。

规则引擎的开发难点
难点1. 拓展设计器的数据对象模块
难点2. 拓展在线动态文档模块
难点3. 规则节点的扩展,包括,决策表、上下文、表达式、集合等常用决策类型
难点4. 规则节点中各个类型的组合使用
难点5. 拓展节点输入表达式的联动效果
难点6. 拓展对 PMML 模型的支持
难点7. 拓展独立模型管理,包括:数据对象模型、决策模型、知识模型
难点8. 决策模型库管理以及引用导入过程,存在动态修改输入信息,需定制其规则匹配
难点9. 后端集成 Drools DMN 模块,并进行 DMN 文件的测试运行,国内可查的资料信息很少,所以也是技术难点之一
难点10.分片测试,需与前端进行实时交互,与代码调试过程类型,通过动态的数据返回可直观预知该模型是否能满足要求
难点11.测试动态分析报告,并完成对表达式以及节点报错信息提示
在这里插入图片描述

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值