规则引擎
# 一、规则引擎简介
- 解决硬代码维护成本高。各种硬代码判断,分支条件多。代码的抽象,复用率低等问题
- 物联网协议编码复杂,各种国标,部标,行业标准定义差异大
- 各种子系统对接灵活性不够,业务系统对接的字段定义差异大
- 新增协议需要进行代码大改动进行抽象,重新写方法。不能实现热变更业务流程
- LiteFlow为解耦逻辑而生,为编排而生,打造一个低耦合,灵活的系统
# 二、规则引擎功能规划
- 整合lifeflow规则引擎框架,forest HTTP api框架,sms4j 短信框架,
- 整合告警规则到场景联动规则中,增加设备维度,产品维度的规则,
- 添加告警静默周期,防止重复告警,
- 规则引擎触发器:多触发器时,支持AND,OR,NOT逻辑关系,
- 告警通知:支持短信通知,邮箱通知,系统日志,移动端推送等功能,
- 规则节点:规则脚本编写,支持Groovy,Javascript,Java,Python等脚本语言,
- 规则执行日志
# 三、待开发功能
- 规则节点可拖拽编辑页面
- 设备上报属性消息,下发功能调用,支持脚本修改自定义消息格式
- 内置蜂信物模型转格式节点
- 内置modbus,PLC等协议主流厂商编码格式转码节点
- 触发器第三方调用集成:小度音响语音触发等功能
- 执行动作拓展,完善数据流转方式
# 四、SQL数据库配置源
liteflow:
rule-source-ext-data-map:
# 修改数据库地址
url: jdbc:mysql://mysql:3306/fastbee
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: fastbee
applicationName: SCENE
#以下是chain表的配置,这个一定得有
chainTableName: rule_chain
chainApplicationNameField: application_name
chainNameField: chain_name
elDataField: el_data
#以下是script表的配置,如果你没使用到脚本,下面可以不配置
scriptTableName: rule_script
scriptApplicationNameField: application_name
scriptIdField: script_id
scriptNameField: script_name
scriptDataField: script_data
scriptTypeField: script_type
scriptLanguageField: script_language
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 五、场景联动规则添加
- 告警规则添加
- 告警规则显示
- 场景联动规则显示
- 规则引擎脚本
# 参考文档
上次更新: 2023/10/27, 15:02:45