总览

本章节主要描述系统关键的业务流程,旨在梳理流程,为后续的系统设计提供理论基础。

业务术语

  • 企业
    • 在ishare平台中,分为两类企业,分别为品牌企业和代理商企业。品牌企业可以单独配置app,可以拥有用户的管理权限,如app 用户注册等,而代理商企业则只能查看权限范围内的数据。平台内所有数据都是基于企业做了数据隔离。企业有上下级关系,上级企业可以管理下级企业的数据,平级企业之间数据不可互见,从而可以实现多级品牌管理和多级代理商的商业模式。更具体的企业架构描述,请看下文。
  • 产品
    • 产品是一类设备型号的统称,产品由一个物模型定义其具体的功能,包括系统中的传感器,温度参数等。系统为每个产品分配一个产品ID(product ID)。ishare系统中产品分为两类,分别是公版产品和企业自有产品。公版产品统一由凝卓管理,品牌企业的设备可以绑定到公版产品,这些设备使用同一个物模型(即同样的功能)。企业私有产品是只属于该企业的,功能跟公版一样,也是需要定义物模型。
  • 设备
    • 定义了产品后,设备是指属于该产品的真实物理设备。每个设备在平台上都有一个设备ID(device ID),同时每个设备都配备一个物联网模块,例如4G模块,每个模块都在物联网平台下都有一个唯一的物联网ID(iot device ID),和唯一的MAC/IMEI地址
  • 设备状态
    • 设备状态指设备是否在线。在线即设备内嵌的模块已链接网络,并成功登陆物联网IoT平台。离线即设备处于脱机状态
  • 产品属性
    • 产品属性用于定义产品的功能点,例如开关机,温度,档位等等属性。属性的类型有三种:整数,浮点数,字符串。
  • 设备属性
    • 设备属性是基于时间的一系列产品属性的值,例如产品定义了开关机属性,那么某一台设备的当前的开关机属性为开机或关机状态(值对应1或0)。设备属性是与时间戳密切相关。某个时间点对应的设备属性,即为设备的属性快照。
  • 设备历史记录
    • 设备每次改变状态后,上报数据到物联网平台,物联网平台都会记录该时刻的数据,历史数据可以回看和进行后续的分析。历史数据存放有效期根据该设备上报数据的频率和数据大小而定。
  • 后台管理员
    • 物联网数据管理平台为每个管理员开通一个账户,该账户可以操作查看管理员授权的设备的信息。后台用户只能登陆后台系统,后台用户与app用户不相通,如果同一个手机号,既是后台管理员,也是app用户,则需要重复注册。
  • app用户
    • 每个客户在系统中作为app用户存在,app用户注册支持手机号和邮箱注册。同一个手机号或邮箱可以在不同品牌企业中重复注册。
    • app用户可以登陆app,绑定设备和控制设备。
  • 设备所有者
    • 设备所有者指的是设备的拥有者,该设备所有者只能查看该用户关联的设备。设备所有者可以下发控制指令控制设备,可以查看设备的历史记录。
  • 时序数据库
    • 时序数据库是专门用于存储针对时间维度数据的数据库,每个数据记录都有一个时间戳用于标记数据采集的时间,同时指标会有一组关联的label,用于描述该数据的关联属性。

企业架构描述

  • 企业是整个系统的核心,系统通过企业ID,实现不同企业之间的数据隔离。而且企业支持多层级,可以很好的支持多品牌管理和多级别代理商管理。
  • 下图展示的是一个多级品牌管理和多级代理商的架构。例如顶级品牌企业A,它没有直接面向消费者,而是给品牌B、品牌C、品牌F做OEM贴牌。自品牌可能自身也面向消费者,也同时给别的品牌贴牌,这样品牌企业A只需添加了下级品牌后,即可交由下级企业自己去管理它的子品牌和代理商。
  • 品牌企业的子企业可以是品牌和代理商,但是代理商的下级企业就只能是代理商,不能再出现子品牌。
  • 品牌可以自定义app的内容,包括启动页面、首页滚动图、发现页面链接、关于页面链接等。

APP客户操作流程

  • 消费者购买了设备后,每个设备都配有一个独立的二维码,用户可以打开APP,通过设备配网功能进行设备配网和绑定(Wi-Fi),也可以通过扫一扫功能,添加绑定设备。
    • 若用户尚未注册,则显示注册页面,APP通过授权读取用户的手机号和头像等信息,并请求服务器创建账号。
    • 用户登陆后,APP识别用户扫描的唯一二维码编号,通过后台比对用户的身份和设备的绑定关系,若绑定关系存在,则允许该用户访问该设备;若绑定关系不存在,则提示“没有权限”。
    • 用户打开设备控制界面后,用户可以查看设备的历史数据即图表。
    • 设备定期或状态变化后,主动上传数据,用户可以及时通过APP查看设备的状态。

后台操作流程

  • 管理员可以通过后台实现如下操作:
    • 添加后台子用户
    • 添加角色,角色是系统的最小的权限控制单元。每个角色关联多个权限,同时每个角色可以有多个子用户
    • 分配系统预设权限给角色,例如查看设备的权限,查看产品的权限等等
    • 添加用户至指定角色
    • 添加设备
    • 关联设备至角色
    • 添加设备分组
    • 设备分组绑定设备
    • 用户授权设备分组或指定设备

添加后台用户

  • 开发者可以通过后台,自行添加子管理员。子管理员的账号只能被该开发者或系统管理员看到。添加子管理员方式与注册基本一致,通过手机号+密码,或邮箱+密码的方式添加。
  • 子管理员默认没有权限访问后台数据。

添加角色

  • 角色是权限管理的核心,角色可以包含多个用户,角色也可以分配多个权限。同一个角色内的用户有相同的权限。每个用户只能属于一个角色。

分配权限

  • 系统预设一系列权限。管理员可以可以自行添加角色,并把该角色的权限授予新添加的角色,实现角色的继承。

添加用户至角色

  • 后台用户需要分配至一个角色后,方可访问后台的数据。每个后台用户只能归属一个角色。

添加设备

  • 管理员可以通过后台,添加设备,其中包括如下设备信息:
    • 模块对应的设备ID,必填
    • 设备的名称,必填
    • 设备的型号model,选填

关联设备至角色

  • 新增的角色默认无法访问任何设备数据。企业管理员需要把设备添加至指定的角色后,该角色下的用户方可访问该设备的数据。

添加设备分组

  • 管理员可以创建设备分组,并把设备分配至指定的分组中,实现分组管理,该分组也可以授权给指定用户,该用户可以访问该组内所有设备的信息。

查看设备历史记录

  • 管理员可以通过后台查看某台设备的历史记录信息,导出历史记录,聚合统计等。

规则定义

  • 系统管理员可以通过后台自定义指标监控的规则,例如过去5分钟内,温度高于30度,则触发短信通知管理员用户。监控规则定义包含了两部分:
    • 指标监测条件,例如过去5分钟,温度平均值 > 30度
    • 触发动作,例如发送短信通知用户,温度异常。

可视化图表

  • 系统提供可视化的方式,让管理员可以查看当前系统的历史与当前状态。可视化图表包括:
    • 过去n小时的温度曲线图
    • 过去n天,每天触发报警的次数

安装工单管理

  • 管理员可以查看用户提交的安装工单信息,并可以执行如下操作:
    • 安装工单分派给不同的安装师傅。
    • 安装师傅提交的安装工单信息审核。
    • 安装工单完结。

维修工单管理

  • 当设备产生故障,并触发了故障条件,则系统会为该设备自动创建工单,管理员通过工单服务可以执行如下操作:
    • 查看当前活跃的维修工单
    • 分派工单
    • 查看工单的零件更换记录
    • 维修统计信息
    • 工单详情,包括客户的评价、维修师傅上传的信息。
    • 工单完结,把已完成的工单完结。

售后安装流程

  • 代理商需要提前在系统等级安装师傅的个人信息和为之创建平台帐号。安装师傅上门后需要登记如下信息:
    • 机器唯一编码
    • 客户联系方式,如电话
    • 客户位置(微信小程序定位获取)
    • 安装相关的图片、必填信息。
  • 安装师傅登记完成后,后台工作人员可以登录平台,查看安装师傅填写的信息,若安装师傅缺了哪些资料,后台工作人员可以退回该安装工单,并要求安装师傅补录信息。

系统设计

系统架构

  • 本系统采用微服务架构,把整个系统切分为多个子服务,每个服务对应该领域的业务逻辑,例如权限与认证服务完成用户的注册与帐号管理,本系统具体划分为如下几个微服务:
    • 认证与权限服务,负责权限管理、用户帐号管理、企业管理
    • 设备服务,产品的管理和设备管理、设备历史数据记录、设备控制、设备最新状态维护。
    • 代理商服务,负责管理代理商的信息、门店信息。
    • 售后管理,负责售后安装工单、售后维修工单的信息管理。

设备层

  • 设备层是每个终端都会安装一个通讯模块,可以支持4G或Wi-Fi,对于不同的应用场景,厂家可以选择哪种连接方式,对于电路板来说,两种连接方式都是使用统一的通信协议。
  • 设备终端采集的数据包括:温度数据、湿度数据等、同时终端模块还可以接收来自服务器的控制请求,执行档位调节。数据采集后,通过MQTT协议上传至服务器,并由服务器执行后续的分析与操作。

服务器层

  • 服务器采用微服务架构,MQTT broker负责消息的订阅与发布,同时实现群组控制。
  • 其中基础设施层包括时序数据库、关系数据库、消息队列,用于存储系统中的数据。
  • 设备管理模块包括如下几个功能:
    • 设备的绑定接口、解绑接口
    • 设备的当前状态数据获取接口
    • 设备的历史数据查询接口
    • 设备的群组接口
  • 规则引擎功能包括:
    • 指标表达式定义,统计时间维度和对应指标的汇总值,支持如下aggregate操作:avg平均值、min最小值、max最大值、sum求和,另外定义规则的阈值,当规则求值超过或低于阈值时,自动触发规则动作,例如发送短信通知用户。
    • 联系人管理,用于保存通知的对象
  • 任务调度系统功能包括:
    • 执行定时任务,计算汇总报表
    • 执行延时任务

第三方应用接口层

  • 本系统设计的目标是基于开放的目标原则,对于现有的系统,可以通过构造应用接口层,与第三方平台对接,本系统所有接口均遵循前后端分离原则,使用JSON作为对外的数据格式,方便第三方平台调用本系统的数据接口。

用户层

  • 对于用户终端,可以通过APP进行设备的绑定和控制操作,APP端包括如下功能:
    • 用户登陆注册
    • 设备的绑定与解绑
    • 设备状态的读取,如当前温度等数据
    • 设备控制,包括温度调节、定时时间调节
    • 设备历史状态查询
  • 用户除了可以通过APP实现移动端的简单控制与数据查看外,还可以通过电脑端网页实现更多的功能与报表查看操作。网页端功能包括:
    • 数据大屏,展示当前所有设备的传感器数据、过去7天的传感器历史数据、过去24小时的分钟数据等
    • 用户管理,查看系统当前的注册用户信息
    • 设备管理,查看系统的设备信息、设备状态、设备控制等操作
    • 设备群组,查看/建立/解散群组、实现群组控制功能
  • 报警规则,用户可以定义报警规则,根据用户定义相关的参数阈值规则,超过或低于阈值时,自动发送短信通知管理员

权限架构

  • 权限架构如下图所示:

  • 如上图所示,系统大致可以分为4层:

    • 总部,顶层操作人员拥有最高权限,可以查看所有设备的相关数据。
    • 品牌方,品牌方的权限仅次于总部,但只能查看该品牌相关的数据。
    • 代理商,代理商只能查看设备的状态与历史数据,还有其关联的工单信息。
    • 门店,门店负责接受安装工单、填写安装和维修工单信息。没有查看设备数据的能力。