整个系统围绕 5 个概念运转
约束把对象和容器连起来,规则集把约束打包,作用范围决定规则集在哪里生效。
对象
被约束的最小单元,有类型和属性。如服务器、交换机,或商品、优惠券。
容器
能容纳对象的载体,可嵌套。如机房 > 机柜 > 槽位,或订单、购物车。
约束
一条关系规则:主体 + 关系 + 客体 + 参数。如「每个机柜最多 20 台服务器」。
规则集
一组一起发布、一起回滚的约束。如「华南机房规范 v3」「双 11 促销规则」。
作用范围
规则集生效的环境、租户、区域或时间段。如仅生产环境、仅华南区。
6 层架构,18 个模块
基础数据层给出对象和容器,约束定义层在其上配规则,校验执行层让规则真正生效,生命周期层和治理运维层保证变更安全,开放集成层对外提供接口。
对象管理
维护被约束的对象及其属性,包括对象类型、属性定义和对象实例。通过统一的对象目录,实现约束引用的数据源统一。
容器管理
维护容纳对象的载体及其层级,包括容器类型、嵌套结构和容量属性。通过树形结构视图,实现容器关系的清晰可见。
分类与标签
对对象和容器进行归类,包括分类树和自定义标签。通过批量打标,实现规则数量的大幅压缩。
约束配置 · 核心
设置和管理不同对象之间的约束关系,包括对象与对象、对象与容器之间的规则,以及数量上下限、启用状态等参数。
约束类型库
定义系统支持的约束种类,包括互斥、依赖、容量等类型的参数结构。通过登记式扩展,实现系统能力的持续扩展。
约束模板
沉淀常用的约束组合,包括行业模板和自定义模板。通过一键套用,实现新业务的快速上线。
规则集管理
把约束按业务打包,包括规则集的组成、优先级和作用范围。通过分组视图,实现规则的批量治理。
规则校验引擎
在业务操作发生时执行约束判断,包括规则加载、命中匹配和结果判定。通过内存缓存和增量更新,实现毫秒级实时生效。
冲突检测
发现约束之间的矛盾,包括重复、互相抵消和无解的规则组合。通过保存前自动检查,实现规则的自洽。
规则模拟
在不影响线上的情况下预演规则效果,包括单次试算和历史数据回放。通过模拟报告,实现变更风险的前置评估。
版本与发布
管理规则从修改到上线的过程,包括草稿、审核、发布和回滚。通过审批流和版本快照,实现变更的可控与可追溯。
生效范围管理
控制规则在哪里、何时生效,包括环境、租户、区域、渠道的划分。实现多区域、多业务的统一管理。
审计日志
记录规则的每一次变更,包括操作人、时间和变更前后的值。通过按对象或规则检索,实现变更的全程留痕。
命中监控与告警
统计规则在线上的运行情况,包括命中次数、拦截率和长期未命中的规则。通过监控看板,实现规则的持续优化。
导入导出
规则的批量迁移,包括 Excel/JSON 模板、导入校验和错误报告。通过模板化导入,实现大规模配置的高效处理。
权限与角色
控制谁能看、谁能改哪些规则,包括角色定义、功能权限和数据权限。通过角色授权,实现规则管理的安全与分权。
规则开放 API
向业务系统提供规则能力,包括校验接口、规则查询接口和配置接口。通过标准 HTTP/RPC 接口和 SDK,实现平台化复用。
变更通知
在规则变化时通知相关方,包括消息队列、Webhook 和站内信。通过事件推送,实现规则变更的实时同步。
13 种约束类型,覆盖三类关系
「对象与对象、对象与容器」扩展为三大类共 13 种约束,其中「容器与容器」为新增类别。类型库本身可配置:新增一种约束类型,只需登记其参数和校验逻辑,不动业务代码。
| 大类 | 约束类型 | 含义 | 典型参数 |
|---|---|---|---|
| 对象-对象 | 互斥 | A 与 B 不能同时出现 | — |
| 对象-对象 | 依赖 | 有 A 就必须有 B | 是否允许自动补齐 |
| 对象-对象 | 捆绑 | A 与 B 必须同时出现或同时不出现 | — |
| 对象-对象 | 配比 | A 与 B 的数量保持固定比例 | 比例、允许偏差 |
| 对象-对象 | 顺序 | A 必须在 B 之前处理或排列 | 间隔 |
| 对象-容器 | 准入 | 只有白名单内的对象能进入容器 | 白名单 / 黑名单 |
| 对象-容器 | 数量上下限 | 容器内某类对象的个数范围 | 下限、上限 |
| 对象-容器 | 容量 | 对象某属性之和不超过容器容量 | 属性(重量/体积/金额/功率)、上限 |
| 对象-容器 | 必含 | 容器内必须有某对象 | 最少个数 |
| 对象-容器 | 唯一 | 同一对象在容器内只能有一个 | 按哪个属性判重 |
| 容器-容器 | 嵌套 | 容器可放入哪类上级容器 | 最大层级 |
| 容器-容器 | 继承 | 子容器自动继承父容器的约束 | 是否允许子级覆盖 |
| 容器-容器 | 汇总 | 子容器之和受父容器限制 | 汇总属性、上限 |
每条约束共有的 10 个参数
通用参数加上各类型专属参数,构成一条约束的完整定义。
| 参数 | 作用 | 取值 |
|---|---|---|
| 启用状态 | 是否参与校验 | 启用 / 停用 |
| 数量下限 / 上限 | 控制个数范围 | 整数,上限为空表示不限 |
| 违规处理 | 违反时系统怎么做 | 拦截 / 警告后放行 / 仅记录 |
| 优先级 | 多条约束冲突时谁说了算 | 数字越小越优先 |
| 生效时间 | 定时生效、到期失效 | 开始时间、结束时间 |
| 作用范围 | 在哪里生效 | 环境、租户、区域、渠道 |
| 条件表达式 | 满足某条件才生效 | 如「对象.等级 = VIP」 |
| 提示文案 | 违规时展示给用户的话 | 多语言文本(中 / 英 / 高棉 / 越南语) |
| 归属规则集 | 和哪些约束一起发布 | 规则集编号 |
| 业务备注 | 为什么有这条规则 | 文本、关联需求单号 |
业务操作发生时,校验怎么做
一条规则从草稿到生效必须经过审核,发布后的每个版本都保留快照,随时可回滚。提交时自动执行冲突检测;紧急情况下,已发布的规则可由审核员或运维直接停用,不走审核。
发起操作
业务系统发起入库、下单等操作,调用校验接口,带上对象、容器和操作类型。
筛出规则集
引擎按作用范围和生效时间,筛出当前有效的规则集。
逐条匹配
按优先级逐条匹配约束,计算数量、容量等参数。
汇总结果
任一「拦截」类约束不通过则整体拒绝;「警告」类放行但返回提示;「仅记录」类只写日志。
返回并统计
返回结果、命中的约束编号和提示文案,并写入命中统计。
配置与审核分离,是安全发布的前提
除功能权限外,配置员和审核员还按业务线或区域划分数据权限,只能操作自己负责的规则集。
| 操作 | 系统管理员 | 规则配置员 | 规则审核员 | 运维 / 客服 | 业务系统 API |
|---|---|---|---|---|---|
| 查看规则 | 是 | 是 | 是 | 是 | 是 |
| 新建 / 编辑草稿 | 是 | 是 | 否 | 否 | 否 |
| 规则模拟 | 是 | 是 | 是 | 是 | 否 |
| 审核通过 / 驳回 | 是 | 否 | 是 | 否 | 否 |
| 发布 / 回滚 | 是 | 否 | 是 | 否 | 否 |
| 紧急停用单条规则 | 是 | 否 | 是 | 是 | 否 |
| 管理约束类型库 | 是 | 否 | 否 | 否 | 否 |
| 导入 / 导出 | 是 | 是(仅导入为草稿) | 否 | 否 | 否 |
| 查看审计日志 | 是 | 是 | 是 | 是 | 否 |
三期交付,先让规则跑起来
MVP 只做让规则「配得进、校得了、查得到」的 8 个模块,审核、模拟、监控等治理能力放到后两期。
第一阶段
对象管理、容器管理、约束配置、约束类型库(内置互斥、依赖、数量上下限、准入)、规则校验引擎、审计日志、权限与角色(基础版)、规则开放 API。
目标:至少 1 个业务系统接入,规则改动不再需要发版第二阶段
规则集管理、版本与发布、冲突检测、导入导出、变更通知、分类与标签。
目标:规则变更有审核、可回滚,支持批量配置第三阶段
生效范围管理、规则模拟、命中监控与告警、约束模板、类型库扩展(容量、配比、继承等)。
目标:多区域差异化运行,变更前可预演,上线后可监控关于我们
广州亿源电器有限公司,为企业客户提供规则管理与配置化的软件产品及配套服务。
我们把企业中散落在各个业务系统里的判断逻辑——能不能进、能不能同时存在、最多几个、超过多少就拦—— 抽象成一套可配置的约束体系,让业务规则从代码中解耦出来。
平台覆盖对象与容器建模、约束定义、规则校验、版本发布、审计与监控的完整链路, 并提供标准 API 与业务系统对接。规则调整不再依赖发版,业务侧可以自助完成配置、审核与回滚。
联系我们
产品咨询、方案交流、演示预约,欢迎直接来信。
contact@qmplqjc.com- 电话020-0000 0000
- 地址广州市天河区中山大道建中路5号1201房B424室
- 时间周一至周五 9:00 – 18:00