仪器仪表行业是为国民经济各部门提供计量、检测、调节、控制等技术装备的一个重要行业。当前人类社会正在从信息化、数字化时代迈向化时代,我们已经能够感受到智能交通、智慧医疗、智慧教育、智慧金融等等所带来的更加主动、贴心、便利的生活体验。因此仪器仪表行业也急需朝着智能化方向发展。仪器仪表设备自身的高性能、高精度、高稳定、高环保、高智能固然是我们首先需要追求的,同时对于仪器仪表设备智能高效的管理也是不可忽视的。当前企业、工厂、学校以及科研院所对的管理还存在设备数量庞大、设备种类繁多、设备分级管理不明确、设备维护报修不及时等一系列问题。因此急需一套智能高效的仪器仪表系统来进行管理。本系统后端基于SSM框架进行开发,可以有效解决上述问题。
1SSM框架简介
SSM框架是当前应用比较广泛的JavaEE企业级开发框架,由Spring+SpringMVC+MyBatis三部分组成,适合用于搭建各种大型的企业级应用系统。1.1Spring框架。Spring是于2003年兴起的一个轻量级的Java开发框架,是为了解决企业应用开发的复杂性而创建的。以IOC和AOP为内核,在实际开发中,通常服务器端采用三层体系架构,分别为表现层、业务逻辑层、持久层。(1)IOC控制反转:IOC是一种设计思想,是指在程序开发中,对象的创建不再由调用者管理,而是由Spring容器创建。将对象之间的相互依赖关系交给IOC容器进行管理,并由IOC容器完成对象的注入。当我们需要创建一个对象时,只需配置好配置文件或相关注解即可,不用再考虑对象具体是如何创建的,这样可以把应用从复杂的依赖关系中解放出来。这就是Spring的IOC思想。(2)AOP面向切面:面向切面是指面向切面的编程思想,就是将那些与具体业务无关,却为众多模块所共同调用的逻辑或功能,例如:事务管理、日志管理、权限控制等,把这些抽取并封装起来,形成单独的切面。用到的时候,将这些切面切入到业务流程相关的位置,减少了系统的重复代码,降低了模块间的耦合度,提高了内聚性,有利于以后的维护与扩展。1.2SpringMVC框架。SpringMVC是Spring提供给Web应用的框架设计,其使用的灵活度比较高,开发起来也比较方便。SpringMVC框架主要的组成部分如下。(1)DispatcherServlet:前端控制器。用户发送请求交给前端控制器,前端控制器是整个流程控制的核心,由前端控制器调用其他组件处理用户请求。(2)HandlerMapping:处理器映射器。HandlerMapping负责根据用户请求找到合适的Handler处理器,SpringMVC提供了多种不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。(3)HandlerAdapter:处理器适配器。将各种Controller适配成DispatcherServlet可以使用的Handler,通过特定规则去执行Handler。(4)Handler:处理器。处理器是后端控制器。它在前端控制器的控制下对用户请求进行处理,Handler涉及业务需求,所以需要程序员针对用户需求进行具体开发,最终返回业务数据。(5)ViewResolver:视图解析器。进行视图解析,根据逻辑视图名解析成真正的视图View,然后对View进行渲染,将处理结果通过页面展示给用户。(6)View:视图。View是一个接口,实现类支持不同的类型,例如:JSP、HTML等。1.3Mybatis框架MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和普通的Java对象映射成数据库中的记录。MyBatis具有以下的特点:(1)MyBatis把连接数据库的信息都写在配置文件中,因此不存在硬编码问题,方便后期维护。(2)MyBatis执行的sql语句都是通过配置文件进行配置,不需要写在java代码中。(3)MyBatis的连接池管理、缓存管理等让连接数据库和查询数据效率更高。
2系统设计
本系统是基于B/S模式进行开发的,使用IDEA作为代码开发工具,使用Maven进行项目管理,使用MySQL数据库进行数据存储,系统部署在Tomcat服务器上。在使用的技术栈方面,后端使用当前运用比较广泛的SSM框架以及SpringBoot、Shiro等技术;前端页面使用JS、JQuery、Thymeleaf、Ajax等技术。系统总体方案图如图1所示。系统整体划分为八个模块:系统管理、用户管理、角色管理、部门管理、人员管理、设备管理、数据显示、统计中心。基础模块在实现其增删改查的基础上还要实现模块间的关联,例如仪器仪表设备与部门、类别、人员的关联。点击任一模块均可以得到与之关联的其他模块的信息。数据显示模块可以实时显示在线设备的数据,当数据出现异常时及时报警。统计中心模块可以统计出设备的历史数据,并对其进行分析得到给定时间区间内的最大值、最小值、平均值等信息。还可以统计出设备的在线时长、故障信息等,均以图表的方式进行直观显示。系统提供接口和查询链表给具备权限的设备维护管理人员,例如设备维护管理人员可以通过扫描设备上的二维码进入系统,进行相关文档资料的查询,同时可以反馈故障信息、报修申请等信息给后台系统,后台系统接收到反馈信息后随即进行相关转发处理,提醒相关负责人员等。系统模块划分示意图如图2所示。
3系统与设备的通讯
系统与设备之间采用MQTT协议进行通讯。MQTT由IBM公司开发,是一个即时通讯协议,也是一个物联网传输协议,主要用于轻量级的订阅/式的消息传输。其设计目的主要是为低带宽和网络环境不稳定情况下的物联网设备提供通讯服务。它的核心设计思想是轻量、简单、开放和易于实现,具有以下几项主要特性:(1)一字节固定报头,两字节心跳报文,最小化传输开销和协议交换,有效减少网络流量;(2)开放消息协议,简单易实现;(3)订阅模式,一对多消息;(4)异常连接断开发生时,能通知到相关各方;(5)消息传输不需要知道负载的内容;(6)支持三种不同消息传递等级,消息QoS支持,可靠传输保证:至多一次,可能会出现丢包的情况,使用在对实时性要求不高的情况,例如,将此服务质量与通信环境传感器数据一起使用。对于是否丢失个别读取或是否稍后立即新的读取并不重要。至少一次,保证包会到达目的地,但是可能出现重包。刚好一次,保证包会到达目的地,且不会出现重包的现象。MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。例如:物联网M2M通信、物联网大数据采集、Android消息推送、WEB消息推送、移动即时消息、智能硬件、智能家具、智能电器、车联网通信、智慧城市、远程医疗、远程教育、电力、石油与能源等行业市场。
4系统主要模块
4.1用户管理。用户管理模块主要对有权限登陆该系统的公司所有用户进行统一管理。系统开发人员为超级管理员,超级管理员先为各个公司创建公司账号,公司账号的权限是每个公司最高的。然后由各个公司账号为该公司的人员分配员工账号,不同角色的账号登录系统之后所能浏览的模块和所能进行的操作各不相同。4.2角色管理。不同级别用户的操作权限设置是基于角色管理模块实现的。角色管理模块通过Apacheshiro设置各个角色的权限。在用户管理中进行角色绑定,使得该用户拥有对应角色的操作权限。4.3设备管理。设备管理模块主要对公司的所有设备进行统一管理。在模块中实现仪器设备与部门、类别、人员的关联。点击任一模块均可以得到与之关联的其他模块的信息。解决了公司设备数量庞大、种类繁杂、管理责任不明确等相关问题。4.4设备数据。设备数据模块主要显示当前在线设备的实时数据,设备通过MQTT协议与后台服务器完成通讯,后台实时解析数据存入MySQL数据库中,每隔三秒刷新页面显示最新的数据。4.5统计中心。统计中心模块可以统计出设备的历史数据,并对其进行分析得到给定时间区间内的最大值、最小值、平均值等信息。还可以统计出设备的在线时长、故障信息等,均以echart图表的方式进行直观显示。总结:本系统基于SSM框架进行开发,系统部署在Tomcat服务器上,数据存储在MySQL数据库中,系统与设备之间通过MQTT协议就行数据传输。解决了传统仪器设备管理方法中的诸多问题,实现了智能化、科学化、便捷化的设备管理。可以广泛应用在企业、工厂、学校、科研院所等各种场合。
作者:阚宝 单位:合肥工业大学仪器科学与光电工程学院