在很多企业的 IT 业务系统中,经常会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的IT业务系统应该能快速且低成本地更新,一般的做法是将业务规则的配置单独拿出来,使之与业务系统保持低耦合。目前,实现这种功能的程序,已经被开发成为规则引擎。

为什么选择规则引擎

规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来,使复杂的业务规则实现变得简单,也可以动态修改业务规则,从而快速的响应需求变更。

规则引擎的优点

  • 简化系统架构,优化应用
  • 让复杂的业务逻辑可视化,提高系统的可维护性和维护成本
  • 方便系统的整合
  • 减少业务规则用“硬编码”实现的成本和风险
  • 大大提高组件的可复用性

规则引擎的使用场景

规则引擎虽然非常强大,但并非所有场景都适用。一般来说,规则引擎适用的项目都具有以下一个或多个特征:

  • 需要定义一个非常复杂的场景,甚至对于业务专家都很难完全定义
  • 没有已知的或定义明确的算法解决方案
  • 有挥发性的要求和需要经常更新
  • 需要快速做出决定,通常是基于部分数据

规则设计器和规则引擎解耦的价值

Nebulogy BPM PaaS,基于微服务架构对BPM平台类应用进行充分解耦,将BPM全生命周期的管理落地、流程应用开发&运维的最佳实践,以一组通用组件服务的方式呈现给用户,以便能够更快更好更简单地搭建业务流程。

架构层面:

面对大量的规则运算量,可更好保障平台的性能
流程中的大量规则运算量交给规则引擎处理,NBS平台根据规则运算结果触发下一个流程节点,有效保障了平台的性能。此外,独立的规则引擎也能更好地扩展规则的运算量。

应用层面:

面对频繁变动的业务规则,可简化需求逻辑的修改
过去在流程开发的同时定义规则,当业务规则变化时,需要连同流程一起修改,重复开发工作量大。NBS将业务规则配置和流程代码开发解耦,针对同一支流程,无论业务规则如何变化,流程执行可以保持不变。

集成层面:

面对多样的集成需求,颗粒度下更容易集成、组装。
解耦业务流程各个方面的逻辑部分,形成形式松散、无缝集成、动态可配置的运行环境,满足企业对信息孤岛的数据集中、统一、智能化管理需求。

规则如何应用在表单设计器&流程设计器

规则in流程设计器

流程设计器中常用的规则配置包括:选人规则、线规则、节点属性、关联表单、审批行为、审批方式等。

以选人规则为例,在BPM平台没有规则设计器之前,你是否遇到过以下场景?

平台的流程设计器预设了企业常用的规则,但无法满足预设规则外的配置需求。此时,运维人员需要根据业务部门的需求,手工调整加人或减人,无法按照特定规则选人。当选人规则经历多次变更后,运维人员很难追踪过往的配置规则,无疑增加了运维的复杂度。

通常,这类企业对选人规则有以下需求:
1) 选人规则跳脱出组织、岗位、角色的情形
2) 选人规则的需求变更频繁
3) 对运维便捷性的需求,摆脱对人的依赖

Nebulogy BPM PaaS 支持企业的这类需求,标准规则设计器可视化界面配置定义规则,覆盖80%常见规则配置需求,大大提升规则配置效率;可读性强,易操作,降低上手难度,业务人员可定义配置流程规则。

除此之外,NBS还提供规则设计器高级模式,基于blockly规则和标准规则设计器兼容。扩展性强,积木式规则设计配置,支持代码扩展,满足用户更加复杂的规则场景需求。

规则in表单设计器

表单设计器中常用的是事件规则,表单通过事件实现与内部组件以及外部系统的联动。

回想你在BPM平台配置事件规则时,是否遇到过如下场景:

BPM平台内有400支流程,其中100支流程都使用事件规则A。当事件规则A发生变更时,需要对这100支流程规则逐一进行“coding、配置、封装、发布”,才能完成全部的规则更新。

面对频繁变动的规则,我们总是希望把容易变动的和不容易变动的分离开来,这样就不至于因为修改易变的部分影响不需变的部分,从而简化系统修改的复杂性,也提高系统的灵活性。

NBS积木管理支持规则积木的扩展。规则编辑过程中允许嵌入代码,还可以把代码封装成积木。已经封装好的积木,在调用过程中也可以继续编辑。不仅操作便利,同时保证了业务人员与开发人员协作。如此就大幅提高规则配置效率和减少重复工作量,充分体现沉淀和复用对企业的价值。

关于斯歌旗下品牌Nebulogy

2016年,上海斯歌信息技术有限公司正式布局云计算领域,创立了品牌Nebulogy(中文名“纳比云”),专注于为企业提供微服务云应用平台和解决方案。基于云原生基础架构,自主研发云原生PaaS平台、BPM PaaS平台、容器管理平台、 低代码应用开发平台,帮助企业提高开发资源利用率, 加速资源整合和优化,促进和推动企业数字化、互联网化、智能化转型。