00-核心概念与快速预览
欢迎来到规则中心!本页面将帮助您快速理解规则引擎的核心思想、各个模块之间的关系以及系统的工作原理。
1. 核心概念
在规则中心核心概念中,在开始使用之前,请先熟悉以下核心概念:
1.1 规则 (Rule)
规则是规则中心的基本单元,规则是逻辑判断的核心单元,定义了"什么样的设备符合条件"。
| 配置项 | 说明 |
|---|---|
| MAC配置 | 直接在规则上导入MAC地址,限制特定设备 |
| MAC资源引用 | 当多个规则使用同一批MAC时,可引用MAC资源包 |
| 渠道配置 | 限制规则只对特定渠道的设备生效 |
| 地区配置 | 限制规则只对特定地区的设 备生效 |
| EL表达式 | 高级用法,可配置灵活的过滤条件(如 SDK版本>46 且 构建包含>NRD91N) |
1.2 MAC资源 (MAC Resource)
MAC资源是规则中心用于管理设备集合的机制,是一组MAC地址的集合库。当多个规则需要使用同一批设备清单时,可以建立一个MAC资源包,在不同规则中直接引用,实现复用。
典型场景:"VIP测试组"包含1万台设备,需要在任务推送和广告投放两个规则中同时使用。
1.3 业务绑定 (Business Binding)
业务绑定是将规则应用于具体业务的机制。规则本身是独立的,只有被具体的业务绑定后,才会真正生效。
支持的业务类型:
| 业务类型 | 对应模块文档 | 说明 | 是否需审批 |
|---|---|---|---|
| 任务推送 | 任务推送管理 | 向设备推送任务配置 | 是 |
| Launcher广告 | Launcher信息管理 | 广告位配置推送 | 是 |
| 黑名单 | 黑名单配置 | 黑名单卸载配置 | 是 |
| UOTA升级 | UOTA信息管理 | 系统升级包推送 | 否 |
| 域名分发 | 域名分发管理 | 设备域名配置 | 否 |
操作方式:
- 绑定规则:业务侧可直接关联已有规则
- 新增规则:在业务侧新增的规则会自动绑定到当前业务
- 新增MAC/渠道/地区:必须选择放在一条已绑定的规则之下
1.4 EL表达式 (EL Expression)
EL表达式是规则中心基于 LiteFlow 规则引擎的领域专用语言(DSL),用于以声明式方 式描述复杂的设备过滤和业务编排逻辑。既支持通过可视化拖拽自动生成,也支持直接编写文本形式的表达式,二者语义完全一致。
下方示例中的 EL 表达式,其业务含义为:当设备的“渠道名称”包含 2024,且同时满足“SDK 版本以 rk 开头”或“激活时间在 2026-01-01 00:00:00 至 2026-01-30 00:00:00 区间”这两类条件之一时,规则判定为通过;否则规则不通过:
IF(
AND(
OR(
startsWithCmp.tag("build").data("rk"),
betweenLInclCmp.tag("activationTime").data("2026-01-01 00:00:00,2026-01-30 00:00:00")
),
containsCmp.tag("channelName").data("2024")
),
deviceTrueCmp,
deviceFalseCmp
);
2. 模块关系图(不考虑审批相关限制)
规则中心模块关系图展示了规则、MAC资源与业务系统之间的关系。
审批相关的业务(黑名单、launcher、任务推送)很特殊, 一条规则但凡被一条需要审批的业务绑定之后,就不能再绑定其它任何数据了,如果这时候这条规则去绑定mac资源,mac资源同样也会有只能1对1绑定的限制, 所以如下的图中是不考虑审批限制的关系图
下图展示了规则、MAC资源与业务系统之间的关系(不考虑审批限制):
- MAC资源 被 规则 引用(复用)
- 规则 被 业务 绑定(生 效)
- 在业务侧新增的MAC/渠道/地区,实际上是直接附加在当前绑定的规则上
3. 数据关系图
规则中心数据关系图展示了规则引擎涉及的主要数据表及其关系:
4. 匹配逻辑 (工作原理)
规则中心的匹配逻辑(工作原理):当机顶盒(设备)请求服务器时,系统是如何判断它该获取哪些配置的呢?
4.1 匹配流程图
规则匹配流程图展示了设备请求到返回结果的完整过程。
4.2 详细流程说明
规则匹配详细流程说明如下表所示:
| 步骤 | 说明 |
|---|---|
| 1. 请求输入 | 业务模块传入设备MAC、业务类型等信息 |
| 2. 信息补全 | 根据MAC查询设备详细画像(渠道、地区、硬件配置等) |
| 3. 初筛候选规则 | 从Redis缓存中获取MAC专属规则、渠道关联规则、无限制规则、业务类型规则 |
| 4. 集合运算 | 候选规则 = (MAC规则 ∪ 渠道规则 ∪ 无限制规则) ∩ 业务类型规则 |
| 5. 地区过滤 | 检查规则是否有地区限制,设备地区不匹配则跳过 |
| 6. EL表达式计算 | 将设备详情注入LiteFlow上下文,执行EL表达式匹配 |
| 7. 数量限制检查 | 检查业务剩余数量是否满足要求 |
| 8. 结果输出 | 返回匹配成功的业务ID集合 |