码迷,mamicode.com
首页 > 其他好文 > 详细

软件系统设计方案——工业互联网云端管理系统

时间:2021-01-01 12:39:51      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:mongodb   rip   发展   发布   展开   名称   bat   mes   账号   

一.前言

该博客主要针对工程实践项目的软件系统设计方案做一个简要的总结。包括总结软件结构特点(比如设计模式,架构风格),并通过不同视图来描述软件系统的概念原型。

有关本工程实践项目的介绍以及需求分析,可以见以下链接:

https://www.cnblogs.com/chuanguo/p/14083158.html

二.软件设计方案总结

1.背景

为什么需要软件系统设计?因为随着软件的发展,其复杂度前所未有,同时软件还具有易变性这一特征。众所周知,一个合格的软件项目至少要有稳健性,易用性,可维护性等特点。在着手实现软件之前,对其进行高屋建瓴的设计,更有助于我们开发合格的软件。如果想要描述软件系统的特征,可以通过软件架构风格以及设计模式。 架构和模式应该是一个属于相互涵盖的过程,架构更加注重高层的设计。一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。

2.项目架构风格与设计模式

常见的项目的架构风格有以下几种:三层架构、MVC、MVVM、管道-过滤器、客户-服务、P2P、发布-订阅等。

因为本项目中用户是通过浏览器进行一系列操作,所以采取的架构风格为客户——服务类型,更准确的说是Browser/Server类型。B/S架构是在WEB兴起后的一种网络架构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

另外前后端分离是当前最流行的方案,所以本项目也会采取MVC架构。

技术图片

由于本项目的使用者为多级用户,在创建不同用户的时候,可以采用工厂模式,定义一个用于创建用户的接口,由子类决定创建什么级别的用户。另外,用户对于设备的操作,可以通过外观模式来简化使用。

3.接口和类UML图

由于本项目设计多级用户,因此针对不同级别的用户,其操作各有不同,因此很难使用某种通用方式对其进行操作,有必要进行分类。用户的级别共有6种,第一级别的用户为最高权限用户,是设备生产商,级别2--4的用户虽然级别不同,但其所有的功能和操作几乎一致,可以归为一类。级别5的用户是真正使用设备的用户,需要单独归为一类,其下属(级别为6的值班员)也需要归为一类,专门执行设备监控和向上报告的任务。

技术图片

三.不同视图描述软件架构

1.分解视图

技术图片

2.执行视图

技术图片

3.实现视图

技术图片

由于采用MVC的架构模式,因此需要前后端分离,以上为后端的控制器(Controller),以及模型(Model)

以下为Controller目录展开:

技术图片

以下为Model展开:

技术图片

4.部署视图

技术图片

5.工作分配视图

技术图片

四.软件运行环境与技术选型:

1.后端:Springboot

2.前端:vue.js、ElementUI、echarts

3.数据库:MySQL;高并发处理:redis

4.服务器:前端:Nginx;后端:docker 、centos、tomcat

理由:因为采用前后端分离的分离的思想,前端和后端的开发可以各自进行。由于Nginx非常适合静态资源的处理,所以前端服务器程序采用Nginx。Spring Boot 的优点快速开发,特别适合构建微服务系统,另外给我们封装了各种经常使用的套件,比如mybatis、hibernate、redis、mongodb等。采用docker是为了保证程序的可移植性,“一次构建,多次部署“。为实现数据持久化,采用MySQL。由于本项目主要用于设备运行状态展示和控制设备,因此不可避免地会遇到诸如高并发的问题,拟采用redis来做缓存。

鉴于实际使用时,数量较多的设备(执行器)会同时向webserver传输自身的状态信息,为了减轻服务器压力,webserver主要的工作是进行redis缓存,同时响应前端对于设备(执行器)状态数据的请求。每隔一段时间,将目前已有的缓存数据存入database服务器中。如果用户需要查看一段时间之前的设备状态信息,webserver可以从database server中读取。

五.数据库设计

通过以上的分析,可以得出以下几张主要数据表。其中设备分为网关和执行器两种。

1.用户表

实际应用中,每一条用户链,所包含的用户层数可能未必一致。
而数据表中的6种用户角色,实际对应的是6种用户等级(可以把值班员等级看做6),
实际的用户链可能有以下几种:
1.设备生产商->代理商->分销商->大集团->工厂管理->值班员(1->2->3->4->5>6)
2.设备生产商->代理商->分销商->工厂管理->值班员(1->2->4->5->6)
3.设备生产商->大集团->工厂管理->值班员(1->4->5->6)
4.设备生产商->工厂管理->值班员(1->5->6)

字段名 类型 备注
id int 数据表id,唯一,主键
username varchar 用户登录名
password varchar 用户登录密码
type tinyint 用户类型
nickname varchar 用户资料名称
address varchar 用户所在地址
create_time timestamp 用户创建时间
login_time timestamp 用户登录时间
parent_id int 创建该用户的上级用户的id
.......... ........ ..............

2.执行器表

由于设备在实际使用前,会经过多级用户的手中,因此需要增加相应字段

字段名 类型 备注
id int 数据表id
device_label varchar 设备自身标识
nickname varchar 设备名称,五级用户添加
discription varchar 对执行器特性的描述
add_time timestamp 生产商添加设备的时间
status tinyint 未分配/异常/已分配/在使用
ownbyUser2 bit 是否分配给了二级用户
user2_id int 二级用户的id
ownbyUser3 bit 是否分配给了三级用户
user3_id int 三级用户的id
ownbyUser4 bit 是否分配给了四级用户
user4_id int 四级用户的id
ownbyUser5 bit 是否分配给了五级用户
user5_id int 五级用户idw
switch_id int 执行器连接的网关的id
link_port int 执行器连接的网关的端口

3.网关表

字段名 类型 备注
id int 数据表id
device_label varchar 设备自身标识
add_time timestamp 生产商添加设备的时间
mac_addr txt 网关自身的mac地址
status tinyint 未分配/异常/已分配/在使用
ownbyUser2 bit 是否分配给了二级用户
user2_id int 二级用户的id
ownbyUser3 bit 是否分配给了三级用户
user3_id int 三级用户的id
ownbyUser4 bit 是否分配给了四级用户
user4_id int 四级用户的id
ownbyUser5 bit 是否分配给了五级用户
user5_id int 五级用户id

4.执行器数据表

与执行器绑定的传感器,会将不同类型的执行器状态参数打包,从网关传到云端服务器,云端服务器可以存储执行器状态参数包,也可以通过解析数据包,向五级用户或者值班员展示设备状态。

字段名 类型 备注
id int 数据表id
data text 传感器发送的数据
device_id int 执行器的id
add_time timestamp 数据发送时间

六.系统概念原型的核心工作机制

本项目主要功能为后台管理功能,涉及多级别用户,因此不同级别的用户对应不同级别的操作。

当前用户使用账号密码登录成功后,就可以执行位于自己权限范围内的操作。

1级用户是设备生产商(网关+执行器),一般有以下操作:

(1)可以将出厂的设备添加进数据库,或者从数据库中删除设备信息(其他级别的用户没有该项权限)

(2)可以查看所有的设备,通过分类(已分配,未分配,损坏)的方式展现

(3)可以查看自己的直属下级用户,或者给直属下级用户分配设备(考虑到直属下级用户会追加订单),或者查看下级用户拥有的设备的状况

(4)可以创建直属下级用户,并在用户创建后给其分配设备

(5)对下级用户上报的有问题设备进行处理

2级~4级用户主要的操作是设备的分销与采购,有以下操作:

(1)查看直属下级用户,查看给其分配了哪些设备

(2)创建直属下级用户,并分配设备

(3)查看自己所有的设备,并通过分类呈现

(4)对于下级用户报告的有问题设备,向自己的直属上级用户报告,有问题的设备最终会汇总到一级用户手里

5级用户的主要操作是激活、使用设备:

(1)创建值班员,给值班员分配要监视的设备

(2)查看所有值班员信息

(3)激活设备/关闭设备

(4)对于由值班员上报的设备运行异常,进行处理

(5)查看所有设备的运行情况

(6)向上报告有问题的设备

6级用户为值班员,主要操作有:

(1)监视自己名下设备的实时运行状态

(2)如果监测到异常情况,及时向自己所属的5级用户报告

参考资料:

https://gitee.com/mengning997/se/raw/master/ppt/软件科学基础概论.pptx

软件系统设计方案——工业互联网云端管理系统

标签:mongodb   rip   发展   发布   展开   名称   bat   mes   账号   

原文地址:https://www.cnblogs.com/chuanguo/p/14201259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!