Skip to content

顶层架构

顶层架构从外部关注引擎组件如何管理和运行,涉及规则中心/管理组件、引擎组件和业务中心。

  • 管理组件:包含规则配置、事实配置、运营看板等功能,提供管理能力
  • 引擎组件:提供服务能力,以分为计算引擎组件和决策引擎组件两大类。它们加载不同领域的配置信息(规则文件、事实结构等),实例化出各种专用引擎,比如销售规则引擎、筹金计算引擎、移动反诈引擎等组件。
  • 规则中心组件:管理组件和引擎组件也打包为一个大的组件。

What

CHBN-URC

  • 规则中心:对规则引擎组件进行集中式管理,提供统一的规则配置、事实配置、运营看板等服务,充当规则库的角色。
  • 引擎组件:以封装业务能力(Packaged Business Capability)的决策型或计算型的规则引擎组件型态分布式运行。
    • 决策引擎组件服务:抽象和封装的一般是OLTP系统中原来由Java代码实现的的决策型业务规则。
    • 计算引擎组件服务:抽象和封装的一般是OLAP系统中原来由SQL存储过程实现的计算型业务规则。
  • 业务中心:充当事件源事实库的角色,为引擎组件提供完整的事实数据,驱动引擎组件处理各种类型领域事件

Why

随着业务的不断发展,业务中心,将遇到复杂易变的业务场景,不论对于技术团队还是业务团队,认知上都存在一定的困难,而双方的心智模型达成一致更是难上加难。

一个比较自然的办法,就是希望可以将其显化,让业务团队和技术团队,都看得见、看得懂,易于达成共识。

引入业务规则引擎组件的出发点,就是将复杂易变的业务逻辑相对明确和稳定的业务功能分离出来,并显现出来。

业务规则组件应当支持声明式/动态式的方式来调用。声明式的描述,不需要关注执行过程,更容易理解;动态式的方式,支持即时编译(JIT)或脚本解释(不需要重新编译),可以更快响应业务变化。

业务规则引擎组件应当支持分布式运行,以便于业务的快速响应和容量的扩展。

当然,分布式运行的业务规则引擎组件,也需要支持集中式管理,以便于规则中心提供统一的规则配置、事实配置、运营看板等服务。

How

chbn-container

引擎服务内部的主要组成部分有:

  • 业务规则:一般是DRL或DMN文件,可由规则中心配置提供。
  • 规则引擎:比如决策引擎drools或计算引擎spl,目前使用drools 8.44版本。
  • 业务对象:定义事实包含哪些结构化信息,形式上是定义一个Java Bean。
  • 取数引擎:根据调用方提供的少量事实索引,从事实库中查询出完整的事实数据(符合事实结构的定义),并提供给规则引擎。目前使用graphql api技术。
  • 领域服务:定义应用接口信息,调用者可以访问的规则引擎的决策或计算服务。目前使用restful api技术。