娄革伟 刘旭亮 马济乔 董淑萍 曹文婷
摘 要:针对目前航天试验设备检测过程中存在的检测流程复杂、数据留存不方便、数据资源浪费严重等问题,为进一步提高航天试验设备检测的效率,基于前后端分离的模式设计和开发了一套航天试验设备检测管理系统。该系统支持网络实时在线流程管理、任务管理、报告管理、数据管理等功能,且依赖于检测数据支撑具备一定的智能辅助设备选型能力。实际应用情况表明,该系统具有响应速度快、使用简单便捷、可靠性强、数据存储性好以及支持智能辅助决策等优点。
关键词:设备检测;管理系统;前后端分离;辅助决策
中图分类号:TP315 文献标识码:A
Abstract: There are still problems in the current aerospace test equipment detection process, such as complex detection process, inconvenient data retention, and serious waste of data resources. In order to further improve the efficiency of aerospace test equipment detection, this paper proposes to design and develop a management system for aerospace test equipment detection based on the separation of front and back ends. The system supports network real-time online process management, task management, report management, data management and other functions. It has certain intelligent auxiliary equipment selection capabilities that rely on the support of test data. Actual application situation shows that the proposed system has the advantages of fast response speed, simple and convenient operation, strong reliability, good data storage and support for intelligent decision-making assistance.
Keywords: equipment detection; management system; separation of front and back ends; decision-making assistance
1 引言(Introduction)
一直以來,航天试验设备检测由于涉及安全和保密工作的缘故,整个检测流程通常都是在线下完成,所有的检测数据均采用纸质数据留存,导致检测工作流程复杂,检测数据留存不方便,数据资源浪费严重等问题。
随着Web、数据可视化、网络安全等技术的不断进步,大量原本需要在线下完成的工作都可以迁移到线上来完成,大大提升了工作效率。同时,随着依赖于数据挖掘和支持决策等算法的发展,工作中积累的检测数据资源得到了有效利用[1-3]。相较于原本的线下管理,基于前后端分离的航天试验设备检测管理具有效率高、检测流程透明、可靠性强、数据存量大以及支持智能辅助决策等优点。
2 系统设计(System design)
2.1 设计思想
本航天试验设备检测管理系统采用前后端分离的思想进行设计。前端基于HTML和JavaScript进行设计,后端逻辑基于SSM框架(Spring,Spring MVC,MyBatis)进行设计,前后端数据交互采用Ajax异步数据交互的方式进行。与常见的JSP+Java的设计方式相比,前端页面只负责UI展示,不涉及后端的数据逻辑操作,前后端相对隔离,既能保证良好的用户体验,又在一定程度上提升了数据安全性。
航天试验设备的检测数据通常是一组耦合性较强且具有固定结构的关系型数据,因此相对于日渐流行的MongoDB等非关系型数据库来说,开源数据库MySQL更适合作为本系统所采用的数据库。MySQL支持事务性操作、结构化查询,且在单次查询数据量500 条以内,并发线程数100以上的情况下,其性能与MongoDB等非关系型数据库相当。综合以上考虑,本系统采用MySQL来设计本地数据库,数据安全主要考虑对数据传输环节进行控制。目前常见的数据传输加密算法有对称加密和非对称加密。HTTPS协议综合了两种加密算法,实现了数据传输加密、客户端身份认证,确保了数据传输过程的安全[4-5]。系统服务器采用Tomcat搭建,在搭建服务器时对HTTPS进行配置。系统采用Java JDK 1.8自带的免费JKS格式证书,生成证书后对Tomcat的server.xml进行设置,如图1所示。
2.2 系统结构和功能模块
系统采用J2EE的体系结构进行设计[6-7],项目结构划分为如下几个层次:
(1)持久层。主要由若干持久化类组成,持久化类的对象和数据库中对应数据表的元素保持一致。
(2)数据访问层。由若干DAO接口和MyBatis映射文件构成。接口名称统一以DAO.java结尾,且MyBatis文件名称与DAO接口保持一致。
(3)业务逻辑层。该层由若干service接口和接口的实现类组成,分别以service.java和serviceImpl.java结尾。该层负责实现系统的主要业务逻辑。
(4)Web表现层。该层主要由控制器类、前端页面、script以及CSS文件等构成。控制器类负责页面响应与转发、用户请求拦截,调用业务逻辑中的相应接口来处理用户请求,并将处理结果返回给前端页面。
(5)工具类。主要包括分页、验证码生成等一般工具类。
根据层次化设计思想,本项目的层次结构如图2所示。
本系统主要实现如下几大功能模块:用户管理、项目管理、任务管理、报告管理、数据管理,具体功能如图3所示。
3 关键技术(Key technology)
3.1 SSM+HTML+Ajax前后端分離设计
SSM是目前流行的Web应用开发整合框架。SSM是指Spring、Spring MVC和MyBatis。Spring是一种开源的Java编程框架,与传统的面向对象编程方式不同的是,它主要通过提前配置好的Bean容器来生成类对象以及对象的方法。所有类对象都通过“第三方”的Bean容器来进行管理维护,对象与对象之间相对解耦。这就使得程序具备较好的可维护性、可复用性,提升了程序开发的效率。Spring MVC是内置于Spring的一个轻量级框架,集成了前端控制器、模型对象、拦截器、校验器等组件,支持JSP、FreeMarker、HTML等多种视图技术。MyBatis是一种能够支持几乎所有SQL操作的ORM框架。它允许开发者以面向对象编程的思想来使用和操作数据库,采用XML或者注解的方式进行配置和原始映射,将接口和Java对象映射成数据库中的记录。
在传统的JavaWeb项目中,前端通常采用JSP页面来开发,页面上包含较多的JSP标签和Java表达式,存在敏感数据泄露的风险;同时数据转发和页面渲染通常是由后端的控制层来完成的,前后端耦合度很高,为后期的维护带来了一定程度的困难。采用前后端分离的设计模式,前后端解耦,前端负责静态资源渲染展示和路由跳转,后端负责业务逻辑控制和数据操作;前后端数据交互采用Ajax异步交互的方式来进行,前端通过Ajax调用后端接口,然后利用JSON来传递数据。前后端分离设计模式的数据交互方式如图4所示。
前后端分离,前端代码框架可以采用Vue.js、Node.js、Layui、React等。本系统前端基于Layui进行设计,前端服务器采用Nginx。要进行前后端数据交互,首先要在前端使用Ajax请求数据,具体如下:
$.ajax({
url: "/testAdmin", //请求的url地址
contentType: "application/json;charset=UTF-8", /*请求体的格式,这里表示数据会以JSON.stringify的格式添加到请求中*/
dataType:"json", //数据的格式为json
type:"post", //请求方式,可以是post,也可以是get
data:{request:request,reply:reply}, //请求的数据
success:function(data){}, //定义请求成功后的动作
});
要使得后端接收到前端传递的数据,只需要在控制器中提供如下接口代码即可:
@RequestMapping("/testAdmin")
public void testAdmin (@RequestBody Map
3.2 数据可视化
航天试验设备检测管理系统支持历史数据统计分析显示、检测任务趋势分析预测显示、检测任务结构分析显示以及各类检测设备比重统计显示等功能,主要依赖于大量的历史检测数据和数据挖掘、模糊预测控制等算法来实现。本系统采用ECharts作为数据可视化插件,ECharts内置了丰富的可视化类型,包括柱状图、折线图、饼图、散点图等。通过对ECharts内置属性的配置来调整图表形状,然后利用Ajax将后端传递给前端的数据添加到ECharts的属性中。ECharts开源免费,支持实时显示,交互性强,且兼容绝大部分的浏览器。以图5为例来展示本系统的可视化界面。
3.3 设备选型评价决策支持
航天试验设备检测过程中会产生大量的检测数据。长期以来,积累下来的这些数据均未能加以有效利用,造成了严重的数据资源浪费。随着数据挖掘技术的不断成熟,依靠丰富的航天试验设备检测数据资源,本系统以遗传算法为核心通过数据挖掘技术来为航天试验设备选型提供辅助决策,根据设备检测结果和设备的实际应用和评价情况,在拟定的一组设备评价标准中寻找出最优的设备评价标准。
遗传算法是一种模拟自然遗传选择和淘汰的生物进化过程的计算模型,于1975 年由美国Michigan大学的J.Holland提出[8-9]。它主要通过将问题建模为自然进化过程来寻找问题的最优解。它具有较好的全局搜索能力,并且能够根据搜索过程自适应地调整搜索方向。遗传算法将问题可能潜在的解表征为一个个染色体,这些染色体构成了问题的解集。将这些解集模拟为一个初代的生物种群,按照适者生存和优胜劣汰的自然生存法则,通过遗传交叉,逐代产生越来越适应环境的优化解。通常为了简化,将染色体的基因编码表示为二进制编码,借助于交叉变异的遗传学过程,最终产生出最优个体,经过解码之后作为问题的最优解。
假定有一类在航天试验过程中使用的断路器设备,根据可靠度、使用寿命、动作时间、性价比四个要素来对设备进行评价。采取的评价方法是加权平均,各个要素所占的比重因子即所需要寻找的最优评价标准。根据遗传算法的思想和步骤,设备选型评价标准的自适应学习过程如下:
(1)初始化种群。根据客户反馈和设备操作使用经验拟定一组评价标准的假设解,设解的集合为,这里取。
(2)对新种群进行编码。将假设解的每个元素进行编码,这里表示成二进制串的形式。比如该型断路器设备按照可靠度、使用寿命、动作时间、性价比进行评价,各比重因子分别为0.3、0.2、0.35、0.15,(0.3, 0.2, 0.35, 0.15)可以表示为(011110,010100,100011,011001),即相应的为011110010100100011011001。
(3)评估个体的适应度。设计目标评价函数:
其中,为实际被评价为合格的该类断路器的台数,为评价标准所对应的合格断路器台数。越接近于,则对应的越大,即适应度越高。也就是说,与实际情况越接近的评价标准,其对应的适应度越高。
(4)根据遗传算法的适者生存原则选择和淘汰个体。设为被选中为下一代个体的概率:
显然,越大,即适应度越高的个体被选择的概率越大。这样,接近实际情况的设备选型评价标准就被保存了下来。这里用如表1所示的四个评价标准来加以说明。
(5)对被选中的两个随机个体进行交叉操作。两个个体上的每个基因座都以相同的交叉概率进行交换,这里取交叉概率为0.5。不妨假设表1中的1号和3号个体进行交叉,得到新个体如表2所示。
(6)变异。遗传算法的变异操作是指将个体编码串中的某一个或多个基因用该编码串中的其他等位基因来替代,形成新的个体。假设群体中每一代有且仅有一个个体发生变异,且对4号个体的第三位、第九位基因进行变异,形成的新种群如表3所示。
由此可以看出,经过选择淘汰、变异、交叉等遗传过程,适应度的平均值和最大值较初代相比都得到了提升。因此可以推断,经过一代代的遗传之后,代表断路器设备评价标准的种群不断得到优化,最终产生满足要求的评价标准。
4 系统应用(System applications)
本系统基于Java开发实现,开发环境为Eclipse 2019。系统开发完成后,在航天试验设备检测管理工作中进行了应用。系统分为前台和后台,前台供用户登录后进行任务委托、任务进度查询、报告下载等,后台供系统管理员按照权限对各模块功能进行管理。
(1)前台。前台主要实现用户登录注册、任务委托、报告下载等功能。图6为开关断路器设备检测任务委托信息提交表单。图7为用户委托信息列表,包含用户委托的详细信息。
(2)后台。后台主要实现用户管理、项目管理、任务管理、报告管理、数据管理等功能。图8(a)、图8(b)为任务管理,实现任务委托信息展示、委托接受和拒绝等功能。图9为报告管理,支持Word版报告的生成和预览,支持上传电子版的W报告。图10为检测任务数据统计的饼状图展示。
5 结论(Conclusion)
基于前后端分離的航天试验设备检测管理系统,实现了试验流程、报告和数据的电子化、网络化管理,同时支持客户的远程在线委托管理、任务管理和在线报告查询、下载以及打印等功能。系统支持智能辅助决策,依赖大量的历史检测数据以及遗传算法来实现对设备选型的评价。应用情况表明,系统具有效率高、检测流程透明、可靠性强、数据存量大以及支持智能辅助决策等优点,可应用于航天试验设备检测的日常管理工作中。
参考文献(References)
[1] BALUSAMY B, ABIRAMI R N, KADRY S, et al. Big data visualization[M]. New Jersey: John Wiley & Sons, Ltd, 2021:10-20.
[2] PEIXOTO H, GUIMARES T, SANTOS M F. A new architecture for intelligent clinical decision support for intensive medicine[J]. Procedia Computer Science, 2020, 170:1035-1040.
[3] 陈文伟.决策支持系统及其开发[J].中国计算机用户,2008 (25):65.
[4] 吉文杰.基于元数据的数据中心管理系统的设计与实现[D].上海:东华大学,2011.
[5] 宗校军,沈轶,廖晓昕.基于Web元数据的定题信息采集[J].系统工程与电子技术,2007(02):281-284.
[6] 陈志刚.基于J2EE的生产型企业进销存管理系统的设计与实现[J].价值工程,2019(34):166-168.
[7] 马振森.航天二院试验数据管理系统的设计与实现[D].北京:北京工业大学,2012.
[8] 张丹,左敦稳,焦光明,等.基于粒子群遗传算法的航天产品装配顺序优化方法[J].兵工学报,2010(9):1228-1234.
[9] 蒋佩华,华冰,黄宇,等.基于遗传算法的变质量航天器姿态控制方法[J].郑州大学学报(工学版),2019(04):1-7.
作者简介:
娄革伟(1990-),男,硕士,工程师.研究领域:航天试验测试软件开发,航天试验设备检测.本文通讯作者.
刘旭亮(1983-),男,硕士,工程师.研究领域:航天试验设备检测.
马济乔(1989-),男,硕士,工程师.研究领域:航天试验设备检测.
董淑萍(1990-),女,本科,助理工程师.研究领域:航天试验设备检测.
曹文婷(1987-),女,本科,工程师.研究领域:航天试验设备检测.