基于Spring Boot的信息化服务管理系统的设计与实现
2018-02-28莫秋晶黄志远王爱华黄华陶歆
莫秋晶 黄志远 王爱华 黄华 陶歆
摘要
本文以柳钢信息化服务管理要达到的目标为导入,通过系统功能设计、流程设计,采用SpringBoot开发框架对其进行实现,通过系统的实际应用,满足了柳钢信息部对信息化服务管理的要求。
【关键词】Java Spring Boot 信息化服务管理系统
1 前言
柳钢信息化服务管理系统是对信息化项目开发过程和运维阶段所产生系统问题的提报、处理跟踪、人员分配、记录追溯和最终评价,并且依据两化融合的要求保存记录项目各阶段的相关资料,有效形成信息化服务的闭环管理和知识库的建立。通过此系统的开发、实施和应用,我们需要实现:
(1)建立统一的系统运维管理体系,对系统问题进行有效的分类,以问题紧急优先级进行差别化管理、对问题处理进行及时的分派和跟踪。
(2)全面系统地收集用户特别是终端和近终端用户对系统问题的反馈,以准确地、快速地实现高质量的运维服务、持续改进产品质量,提高客户的用户体验,提高用户的满意度。强化考核要求,根据问题处理进度和结果,正确反映实际运维工作的解决状况。
(3)优化业务流程的操作步骤,减少多余的操作环节,提高处理效率。
(4)减少手工的录入工作,实现数据在原始发生时一次录入,建立准确、完整的数据库,提高效率、提高准确性并降低业务人员的劳动强度。
(5)建立信息沟通、共享渠道,让正确的信息在需要的时候准确的到达合适的人。
(6)加强对系统问题数据的收集和分析,形成知识库,为后续运维人员提供有效的问题处理参考。
2 系统功能
2.1 功能设计
柳钢信息化服务管理系统由柳钢信息管理部自主研发,主要用于:柳钢内部信息化管理系统开发过程和系统运维阶段产生的系统问题的提报、处理跟踪、人员分配、记录追溯和最终评价;柳钢内部信息化系统项目实施过程和运维阶段产生的所有项目资料的保存和查阅;机房日常点检情况的记录、问题反馈、问题处理和查阅。根据业务需求,系统设计的主要功能如表1所示。
2.2 流程设计
为了实现信息化服务管理工作的闭环管理和流程的高效性,我们对业务实际流程进行了优化,并设置了以下角色:业务负责人(负责任务的提报及确认评分)、项目负责人(负责项目信息维护、项目任务分配)、实施员(负责任务提报确认、任务处理)、硬件管理员(负责作业信息维护、点检问题处理)、机房值守员(负责点检问题记录和提报)。
2.2.1 项目任务管理流程
项目任务管理流程即是在系统开发过程或系统运维阶段产生的归属于系统问题的提报、人员分配、处理跟踪、确认评分的操作流程。具体流程设计如图1所示。
2.2.2 点检问题管理流程
点检问题管理流程即是对机房日常点检问题的反馈、处理和结果查看的操作流程。具体流程设计如图2所示。
3 系统开发技术应用
3.1 Spring Boot框架技术
在柳钢信息化服务管理系统项目中,我们采用的是Spring Boot开发框架,在项目开发过程中,项目成员就可以把重心放在业务应用逻辑层面,而无需关注底层逻辑是如何实现的。Spring框架主要包括的功能有:Ioc、AOP、Spring-MVC、Spring JDBC、Spring Security等。采用此开发框架,可以根据项目特性自动生成Spring框架,能够生成独立运行的Spring应用,没有冗余代码生成,也没有XML配置文件,支持Restfult编码风格,把Tomcat或JettyWeb应用服务器内嵌其中而不用提供WAR包。
3.2 前后端分离
在本项目中,我们采用的是Restful API设计,即前后端分离,通过token实现,用户登录系统时生成token及token过期时间,token与用户是——对应的关系,调用接口时将token放到header或请求参数中,服务端即可知道调用接口的用户信息及其是否拥有调用接口的权限。
3.3 权限控制
使用开源权限控制项目shiro,在shiro配置代码里,配置为anon表示不经过shiro处理,配置為oauth2表示经过oauth2Filter处理,前后端分离的接口都会交给oauth2Filter处理,以此保证没有权限的请求拒绝访问。
3.4 XSS防范及脚本过滤
xSS跨站脚本攻击的基本原理和SQL注入攻击类似,都是利用系统执行了未经过滤的危险代码,不同点在于XSS是一种基于网页脚本的注入方式,也就是将脚本攻击载荷写入网页执行以达到对网页客户端访问用户攻击的目的,属于客户端攻击。在本项目中针对XSS攻击,我们提供了过滤功能,可以有效防止XSS攻击。
3.5 SQL注入防范
在本项目中,我们使用的是Mybatis,如果使用${}拼接SQL,则存在SQL注入风险,可以对参数进行过滤,避免SQL注入。
3.6 后端校验机制
我们在本项目中使用的是HibernateValidator校验框架,且自定义ValidatorUtils工具类,用来校验数据。
3.7 定时任务模块
本系统使用开源框架Quartz,实现的定时任务,己实现分布式定时任务,可部署多台服务器,不重复执行,以及动态增加、修改、删除、暂停、恢复、立即执行定时任务。Quartz自带了各数据库的SQL脚本,如果想更改成其他数据库,可参考Quartz相应的SQL脚本。
3.8 Redis缓存
在设计缓存架构时,我们主要考虑的关键有:查询数据时尽量减少DB查询,FIB主要负责写数据;尽量不使用LEFT JOIN等关联查询;多使用单表查询,缓存命中率最高;数据库insert、update、delete时,同步更新缓存数据;合理运用Redis数据结构。
3.9 系统日志
系统日志是通过Spring AOP实现的,我们自定义了注解@SysLog,使用方式如下所不:
@RestController
@RequestMapping("/sys/user")
public class SysUserController extendsAbstractController{
@SysLog("保存用戶")
@RcquestMapping("/save")
@RequiresPerinissions("sys:user:save")
public Rsave(@RequestBodySysUserEntity user){
ValidatorUtils.validateEntity(user,AddGroup.class);
user.setCreateUserld(getUserld());
sysUserService.save(user);
retuniR.ok();
3.10 文档在线预览
我们使用pdf.js实现pdf文件的在线预览,而对于不是pdf文件我们通过OPENOFFICE提供的命令实现:
soffice-headless-accept-"socket,host-127.0.0.1,port-8100;urp;"-nofirststartwizard
将office文档转换pdf文档的功能,再通过pdf实现文档的在线预览。在预览技术的使用过程中,业务方提出需要对文档的访问权限进行控制,因此我们首先需要禁止直接使用url访问文档路径的方式,再通过接口在后台读取文档,通过IO流回传页面显示的方式,在接口中通过逻辑控制访问权限。
3.11 UI技术
我们采用vue.js+elementai实现html5标准的前端UI,通过vue的双向绑定模式,使得表单的封装以及调用结构的参数传递更加简洁,大大减少了前端开发工作的周期。
4 结语
本文针对信息化服务管理需求,设计、开发和实现了基于Spring Boot的信息化服务管理系统。通过系统的开发、实施和应用,建立了统一的系统运维管理体系,实现运维全过程的记录跟踪和追溯。对于系统的需求提出和问题提报等过程,提高了提报和反馈的效率,对问题进行了分类,同时以问题的紧急程度进行差别化管理、对问题处理进行及时的分派和过程跟踪,对过程痕迹都进行了有效记录和保存,有效形成了整体的运维闭环管理。实现技术知识积累和项目阶段跟踪。对于提报的所有问题和处理情况都可进行查阅,为相关人员处理类似问题提供了一定的参考。系统项目的所有过程文档,都按照项目阶段进行上传和保存,可实时了解到各项目所处的实施情况和所处阶段,方便相关项目人员进行统筹管理。
参考文献
[1]杨阳,汤光恒.基于Spring Boot的高校部门测评系统的设计与实现[J].福建电脑,2018(08):128-129.
[2]杨家炜.基于Spring Boot的web设计与实现[J].轻工科技,2016,32(07):86-89.
[3]吕宇琛.SpringBoot框架在web应用开发中的探讨[J].科技创新导报,2018,15(08):168+173.