莫秋晶 黃志遠 王愛華 黃華 陶歆


摘要
本文以柳鋼信息化服務管理要達到的目標為導入,通過系統功能設計、流程設計,采用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.