本文档主要描述离港前端软件升级系统的体系架构、模块设计方案、数据设计以及web接口设计等。体系架构描述软件使用的技术和总体设计思路,模块设计方案说明各功能的实现逻辑与结构,数据设计指的是本文涉及的系统数据库结构设计,web接口设计描述了前后端之间的web数据接口。
系统设计秉承“前后端分离/SOA”的总体思想,前端使用Vue/ElementUI作为主要框架技术、Nginx作为HTTP服务器,用来提供静态页面访问服务和反向代理作用;后端则以SSM主流框架技术为主、采用MySQL开源数据库,前后端使用Restful规范交换数据。
系统采用JWT令牌鉴权方式,降低服务器运行消耗,提升系统的伸缩性和扩展性。
2.1 运行原理:
该系统开发环境是基于:
-
Eclipse:2020-06版本,
-
Webstorm : 2020-02版本,
-
Jdk : 1.8版本
-
Mysql : 5.7版本
-
Mosquitto :5.0版本
-
Web前端基于:Vue 4.5.6版本 和elementUI技术
-
Web后端是基于:Spring :4.2, SpringMVC : 4.3.6, Mybatis : 4.3.6版本
-
Node是Windows服务,自己启动
部署环境:(采用前后端分离技术 Tomcat 9.0.38版本 + Nginx 1.16.0版本)
-
前端代码放入Nginx中,并部署在一台电脑中
-
后端代码打成jar包放入Tomcat中,并部署在一台电脑中
-
Node-service放在10台电脑上
用户通过登录功能进入系统,选择文件上传功能,上传文件,服务端接受管理员发来的HTTP请求,调用数据中柜台的信息,将需要下发更新的软件上传到服务端,并在Tomcat目录下以压缩包的形式进行储存;当管理员操作下发版本的功能时,通过MQTT协议,接受客户端发来的请求,向个节点柜台发送版本更新的信息。MQTT订阅前端信息,将上传的文件发送到安装有node节点的电脑上,若某个装有node节点的电脑正好处于离线转态(关机),当该节点电脑在线时(开机)将会自动接收到前端发送来的文件。
对于该系统我们的亮点是:
优点: 1、下发版本时当有柜台节点不在线,则这些离线节点在下次运行时会自动升级版本; 2、可以指定任意版本回滚,而不限于只回滚到上一个版本; 3、WEB和柜台节点之间采用MQTT(QoS=2)协议,能保证信息传递可靠,能应对将来大规模的节点数量
总体设计按“前后端分离”方式,当浏览器请求页面或静态资源时,HTTP Server直接响应;当浏览器请求数据时,该请求仍然先发给HTTP Server,经由该Server转发至Web APP Server。Web APP Server业务处理后将结果数据返回给HTTP Server,最终返回浏览器。在此过程中,Web APP Server返回的仅仅是数据(json格式),没有任何与显示(视图)相关的信息,做到了完全的前后端分离,前端负责页面与展示,后端负责业务处理与数据。

