物联网物模型管理平台设计

1. 物模板

1.1 创建模板

获取token ——> 根据信息创建模板数据 ——> 后台业务逻辑创建系统服务(get、set、post),可以异步处理

注意:同一领域下名称唯一

1.2 修改模板

仅能修改草稿状态且未发布过的模板

1.3 查看模板

仅能查看他人已发布、预发布的(存在的意义,和引用方沟通调整物模型定义)和自己的模板

1.4 删除模板

仅能删除自己的未发布过且为草稿状态的模板

2. 物模板功能定义

注意:功能定义,同一物模板标识符唯一,区分大小写字母、校验命名合法性

2.1 属性(以C来看,为结构体属性)

2.1.1 创建

根据数据类型创建属性 ——> 校验数据类型定义的合法性 ——> 根据属性的读写权限填充系统服务参数 ——> 更新物模板(模板是否发布、模板状态)

2.1.2 编辑

根据参数调整功能定义(属性是否发布) ——> 校验数据类型定义的合法性 ——> 根据属性的读写权限修改其对应的系统服务 ——> 更新物模板(模板是否发布、模板状态)

2.1.3 删除

根据参数删除功能定义(属性是否发布) ——> 根据属性的读写权限删除其对应的系统服务 ——> 更新物模板 更新物模板(模板是否发布、模板状态)

2.1.4 查看

返回功能定义并标准化数据规格

2.2 事件(方法)

2.2.1 创建

根据所传参数创建记录 ——> 输入输出参数不可重复 ——> 校验同一事件下参数标识符唯一&校验参数合法性 ——> 根据参数内容创建关联的参数记录 ——> 更新物模板(模板是否发布、模板状态)

2.2.2 编辑

根据所传参数编辑功能定义(事件是否发布) ——> 输入输出参数不可重复 ——> 校验同一事件下参数标识符唯一&校验参数合法性 ——> 根据参数内容创建关联的参数记录 ——> 更新物模板(模板是否发布、模板状态)

注意:筛选出参数信息,CUD对应的参数记录进行处理、先删除再更新再新增处理

2.2.3 删除

删除功能定义(事件是否发布),暂不处理其对应的参数记录 ——> 更新物模板(模板是否发布、模板状态)

2.2.4 查看

2.2.4.1 分页查看

关联查询(查询相应事件的输出参数个数)

2.2.4.2 单个查看

查询功能定义,查询参数填充其参数信息

2.3 服务(方法)

2.3.1 创建

根据所传参数创建记录 ——> 输入输出各自的参数集合不可重复 ——> 校验同一服务下参数标识符唯一&校验参数合法性 ——> 根据参数内容创建关联的参数记录 ——> 更新物模板(模板是否发布、模板状态)

2.3.2 编辑

根据所传参数编辑功能定义(服务是否发布) ——>输入输出各自的参数集合不可重复 ——> 校验同一服务下参数标识符唯一&校验参数合法性 ——> 根据参数内容创建关联的参数记录 ——> 更新物模板(模板是否发布、模板状态)

注意:筛选出参数信息,CUD对应的参数记录进行处理、先删除再更新再新增处理

2.3.3 删除

删除功能定义(服务是否发布) ,暂不处理其对应的参数记录 ——> 更新物模板(模板是否发布、模板状态)

2.3.4 查看

2.3.4.1 分页查看

关联查询(查询相应服务的参数个数,按输入输出体现)

2.3.4.2 单个查看

查询功能定义,查询参数填充其参数信息

3 产品类型

3.1 创建

获取token ——> 根据信息创建产品类型数据 ——> 创建系统服务(get、set、post)

注意:同一领域下名称唯一

3.2 修改

仅能修改草稿状态且未发布过的产品类型

3.3 查看

仅能查看他人已发布或者自己的

3.4 删除模板

仅能删除自己的未发布且为草稿状态的

4. 功能定义

注意:功能定义,同一物模型下标识符唯一,区分大小写字母

同标题2

4.1 引用模板(已发布模板)

4.1.0 创建完成后直接引用模板

前提草稿状态,创建类型完成后,引用已发布模板的功能定义(必选不可不选),如果引用的功能定义

校验渗透请求,模板状态&必选功能定义是否缺失&请求参数各功能定义id对应的记录条数是否正确

引用属性 ——> 根据属性的读写权限填充系统服务参数

引用服务、事件 ——> 根据服务、事件创建对应的服务及服务参数记录、事件及事件参数记录

更新物模板被关联个数

4.1.1 无引用时切换模板

实现同4.1.0

4.1.2 引用模板调整当前模板功能定义引用

校验请求中必选不可缺失

比对已选择和当前请求参数,

​ 筛选出需要删除的功能定义,删除属性同时删除属性对应的系统服务、删除

​ 筛选出新增的功能定义并校验请求参数是否渗透,按5.4.0的添加逻辑处理

4.1.3 引用过模板切换成别的模板

实现同4.1.0

4.1.4 预发布撤回至草稿状态,编辑模板

4.1.4.1预发布规格关联产品类型

校验请求中必选不可缺失且被规格关联的模板功能定义不可缺失

比对已选择和当前请求参数,

​ 筛选出需要删除的功能定义,删除属性同时删除属性对应的系统服务、删除

​ 筛选出新增的功能定义并校验请求参数是否渗透,按5.4.0的添加逻辑处理

4.1.4.2 规格引用但处于预发布状态以下

实现同4.4.2

4.1.4.3 规格引用但处于预发布状态以下且自己未引用模板

实现同4.4.0

4.1.5 已发布撤回至草稿状态,编辑模板

4.1.5.1 未引用模板

实现同4.4.0

4.1.5.2 引用模板,不可切换模板

仅能增加功能定义

4.1.6 不再引用模板

校验通过,删除所有功能定义,更新模板关联个数

5 产品规格

产品规格仅能是其引用产品类别的子集,除了名称、描述之外其余信息来自于类别

5.1 创建

获取token ——> 根据信息创建产品类型数据 ——> 创建系统服务(get、set、post)

注意:同一领域下名称唯一

以某一产品类型基础信息创建产品规格

5.2 修改

以某一产品类型基础信息编辑产品规格

仅能修改草稿状态且未发布过的产品规格

5.3 查看

草稿状态的规格会校验引用类别与自己的功能定义对比

仅能查看他人已发布或者自己的

5.4 删除

仅能删除自己的未发布且为草稿状态的

6. 功能定义

注意:功能定义,同一物模型下标识符唯一,区分大小写字母

同标题2

7. 引用类别功能定义

7.1 未预发布过的规格(原始草稿)引用预发布的产品类型

校验必选&校验产品类型状态&规格状态 <==== (渗透校验)

后端逻辑保证初次引用和编辑、不可更换类别 <==== (渗透校验)

根据功能定义创建自己的功能定义,除了id、时间其他字段全部引用

7.1.1 初次引用

实现同4.1.0

7.1.2 编辑引用

7.1.2.1 创建之后未引用功能定义

则同7.1.1

7.1.2.2 创建之后引用功能定义

校验通过后,根据已引用信息和请求信息筛选数据

交集 =====> 更新

请求去除交集 =====> 新增

已引用去除交集 =====> 删除

7.2 预发布过撤回的规格(草稿)引用预发布的产品类型

实现同7.1

7.3 发布过撤回的规格(草稿)引用预发布的产品类型

仅能增加功能定义

校验已发布的功能定义是否缺失

新增的功能定义按4.1.0逻辑添加记录

7.4 未预发布过的规格(原始草稿)引用已发布的产品类型

校验必选&校验产品类型状态&规格状态 <==== (渗透校验)

后端逻辑保证初次引用和编辑、不可更换类别 <==== (渗透校验)

根据功能定义创建自己的功能定义,除了id、时间其他字段全部引用

7.4.1 初次引用

实现同4.1.0

7.4.2 编辑引用

7.4.2.1 创建之后未引用功能定义

则同7.1.1

7.4.2.2 创建之后引用功能定义

校验通过后,根据已引用信息和请求信息筛选数据

交集 =====> 更新

请求去除交集 =====> 新增

已引用去除交集 =====> 删除

7.5 预发布过撤回的规格(草稿)引用发布的产品类型

实现同7.1

7.5 发布过撤回的规格(草稿)引用发布的产品类型

仅能增加功能定义

校验已发布的功能定义是否缺失

新增的功能定义按4.1.0逻辑添加记录

7.6 功能定义处理

仅能删除可选或者通过引用界面调整可选 =====> 预发布撤回的草稿、原始草稿

8. 审核

8.1 预发布(通过审核)

8.1.1 物模板

草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经架构部、系统管理员审核后 ——> 更新物模型信息、预发布、生成预发布记录

8.1.2 产品类型

校验模板状态

责任人:草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)、架构部、系统管理员审核后 ——> 更新物模型信息、预发布、生成预发布记录

如果引用模板,最后一级审核时模板非发布状态,审核通过变草稿、增加一条系统审核失败记录

8.1.3 产品规格

校验类别状态

责任人:草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)、产品类型责任人、架构部、系统管理员审核后 ——> 更新物模型信息、预发布、生成预发布记录、更新类别关联信息

被引用的产品类别的状态低于预发布,不能发起审核,若审核中撤回或者撤回发起预发布审核(审核中),最后一级审核通过变草稿、增加一条系统审核失败记录

8.2 发布(通过审核)

8.2.1 物模板

责任人:草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经架构部、系统管理员审核后 ——> 更新物模型信息、发布

8.2.2 产品类型

校验模板状态

责任人:草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)、架构部、系统管理员审核后 ——> 更新物模型信息、发布

如果引用模板,最后一级审核时模板非发布状态,审核通过变草稿、增加一条系统审核失败记录

8.2.3 产品规格

校验类别状态

责任人:草稿状态发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)、产品类型责任人、架构部、系统管理员审核后——> 更新物模型信息、发布

被引用的产品类别的状态低于发布,不能发起审核,若审核中撤回或者撤回发起发布审核(审核中),最后一级审核通过变草稿、增加一条系统审核失败记录、更新类别关联个数

8.3 撤回(通过审核)

8.3.1 撤回预发布

8.3.1.1 物模板

责任人:发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经架构部 ——> 更新物模型审核人信息、草稿

8.3.1.2 产品类别

责任人:发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)架构部 ——> 更新物模型审核人信息、草稿

8.3.1.3 产品规格

责任人:发起审核 ——> 创建审核列表数据、创建审核记录 ——> 更新物模型审核人信息 ——> 流经(物模板责任人)、产品类型责任人、架构部 ——> 更新物模型审核人信息、草稿、更新类别关联个数

8.3.2 撤回发布

逻辑同8.3.1

8.3.3 撤回预发布审核中

直接撤回为草稿,同时更新审核列表数据、增加审核记录

8.3.4 撤回发布审核中

直接撤回为预发布,同时更新审核列表数据、增加审核记录

8.3.5 撤回自己的撤回

已实现,本系统当前不处理这种需求

8.4 驳回(物模型)

任何一个审核流程驳回,审核过程结束

9. 初始化数据

系统缓存默认角色数据、缓存配置数据、请求配置数据默认走内存

10. 配置

分页、登录校验、鉴权、审核人信息、模型加密、日志入库

11. 日志

登录日志、操作日志

12. 登录&登出

登录:通过LDAP登录、设权限、token等信息、记录日志

登出:清除token,记录日志

13. 角色与权限

基于RBAC实现,角色、权限(资源),以中间表实现多对多的关系

用户表、角色表、用户角色表、权限表表、角色权限表

物联网物模型管理平台设计_第1张图片

14. 导出

14.1 物模板模型

1、查询所有的功能定义分别填充属性、事件、服务

2、创建文件填充加密数据

3、压缩

4、以流的方式下载

14.2 产品类型物模型和证书

1、查询所有的功能定义分别填充属性、事件、服务

2、kms签名,调用exe生成相应的签名信息。

3、创建文件填充加密数据

4、压缩

5、以流的方式下载

14.3 产品规格物模型和SDK

1、查询所有的功能定义分别填充属性、事件、服务

2、物模型kms签名,调用exe生成相应的签名信息。

3、创建文件填充加密数据、调用auto_tsl.dll生成SDK.zip

4、压缩

5、以流的方式下载

14.4 导出对比(模板、类别、规格)

1、没有预发布过直接导出自己

2、预发布过导出最新的预发布的记录和自己

3、创建文件放置同一文件加下

4、压缩

5、流的方式下载

15、设备影子

物联网物模型管理平台设计_第2张图片

 云端存储设备信息,用于存储设备上报状态、应用程序期望状态信息等

你可能感兴趣的:(物联网,iot)