架构设计
# SaaS中台架构设计
# 服务介绍
# syssvr(系统管理服务)
syssvr是saas系统的核心模块,是最基础的模块,不依赖其他任何模块
功能 | 说明 |
---|---|
用户管理 | 提供用户登录(微信,钉钉,手机,邮箱等)登出,会话校验保持等 |
租户管理 | 提供租户的管理及OEM,租户功能授权,租户应用授权,租户模块授权,租户菜单授权 |
项目管理 | 提供项目的管理及项目配置的管理 |
区域管理 | 区域是项目下的以树结构存在的,如 华东项目 xx街道 xx房 xx室,街道,房间和室都是一个区域 |
数据权限 | 提供区域和项目的数据权限管理,如项目组(家庭组)及房间的授权,可以细到管理权限,读写权限和只读权限 |
通知管理 | 通知的通道,模版及配置管理,支持短信,邮箱,钉钉(机器人及webhook),微信推送,企业微信站内信及电话通知... |
授权管理 | 功能权限管理,通过继承goctl工具可以直接生成配置文件导入到系统中,将多个接口集成为一个授权,并提供高效的管理 |
角色管理 | 支持多角色,高性能,可以授权项目和区域,也可以授权功能权限,应用模块及菜单权限 |
应用管理 | 分为web应用,app应用,小程序应用,而一个web应用由多个模块组成,如系统管理模块,物联网模块,营销模块等 |
模块管理 | 模块目前只用于web, 每个模块都是独立的系统,如物联网,平台管理,系统管理,营销管理等 |
字典管理 | 提供加强版的字典,不仅支持列表形式,还支持树结构 |
插槽管理 | 在系统需要拓展的地方可以使用插槽系统进行实时通知,实时校验,如区域创建的时候可以通过插槽系统来让物联网系统判断该区域是否能创建子区域,以便让系统的拓展性更强 |
日志管理 | 提供操作日志,登录日志 |
运营管理 | 提供工单管理及反馈的功能 |
# datasvr(数据管理服务)
在不同的系统中,数据分析是非常重要的一个部分,而这个部分对前后端来说都是耗时耗力的行为,前端有低代码解决大屏的问题,后端也有数据管理服务可以配置后即可动态获取前端所需要的数据,方便快捷
# timed(timedjobsvr,timedschedulersvr) 定时任务生产者和消费者模块
支持定时任务及延时任务,底层使用 asynq (opens new window) 进行实现 支持以下触发方式:
- 定时触发
- 延时触发
- 消息队列触发
支持以下任务执行方式:
- 消息队列发送
- sql执行
- 脚本执行
同时可以很方便的在管理平台上看到任务的执行记录和执行结果,同时也支持立马执行及修改任务信息
# 物联网模块架构设计
# 服务介绍
# dmsvr(设备管理模块)
dmsvr是设备管理模块,是device manage的简称,负责提供设备管理交互的grpc模块,是整个物联的核心模块
功能 | 说明 |
---|---|
设备管理 | 提供设备管理,设备配置,设备网关关系管理 |
产品管理 | 提供产品管理,产品物模型管理,产品品类管理,产品品类绑定物模型 |
物模型管理 | 提供公共物模型,可以让产品提取公共物模型去使用 |
协议管理 | 支持云云对接,多设备协议,如阿里云云云对接及阿里云设备协议,物美协议等 |
设备组 | 提供设备分组功能,可以嵌套,方便进行设备的管理及控制 |
设备远程配置 | 可以提供设备的远程json配置 |
设备消息 | 可以获取设备的调试日志,云端调试日志,操作日志,设备状态日志,属性最新及历史数据,事件历史数据,行为日志 |
设备交互 | 控制设备,调用设备行为,回复设备行为,请求设备获取最新属性,控制设备属性,请求网关获取拓扑关系,通知网关绑定子设备 |
ota升级 | 提供设备固件版本管理,及远程升级能力。支持按产品,设备进行手动升级,也支持自动升级。 |
设备调试 | 提供在线的设备调试功能帮助快速上线及排查问题 |
用户设备 | 管理用户对设备的直接关系,用户设备收藏,用户设备分享(支持过期时间及物模型级别的权限控制),转让设备 |
设备影子 | 支持接入设备影子,在设备不在线的时候仍然可以控制设备,设备在线后获取最新的影子 |
# udsvr(用户设备服务)
udsvr是基于基础物联网提供的高级应用,如规则引擎,告警等
# 自动化及场景
支持自动触发和手动触发的自动化和告警 自动触发方式支持:
执行方式 | 说明 |
---|---|
设备触发 | 支持设备上下线触发,设备属性改变触发,支持状态保持等高级功能 |
定时触发 | 支持日出日落,定点触发,间隔时间触发等 |
天气触发 | 支持温度,湿度触发 |
执行方式支持:
执行方式 | 说明 |
---|---|
通知 | 支持短信,邮箱,钉钉(机器人,webhook),微信推送,企业微信webhook,站内信,电话通知等 |
延迟执行 | 支持延时执行 |
设备控制 | 支持属性控制及行为控制 |
告警 | 支持触发告警及解除告警 |
执行另一个场景 | 支持执行另一个场景 |
修改自动化状态 | 开启关闭另一个自动化 |
# 告警
告警结合工单管理,可以分配给对应的人去处理,同时可以指定通知指定的人,记录告警记录
# dgsvr(联犀标准协议网关)
dgsvr是设备消息处理模型(device gateway)属于设备消息适配层,解耦设备交互的相关协议,负责将mqtt及其他协议转换转换处理后通过消息队列交给内部处理
- 目前支持的mqtt为emqx
- 转换设备发布消息,登录及登出消息到nats中
- 将nats中发给设备的消息转换为mqtt发送给客户端
- 订阅实时转发: 实时将设备消息转发到nats中
- 规则引擎插槽:提供自定义数据转换的功能
上次更新: 2024/10/11, 17:14:01