楊澤平 梁偉 陳浩 韓志彥 秦鄂東
摘 要:針對由于溝通不暢所造成的無法及時安排預(yù)約實驗課程的情況,文中設(shè)計并實現(xiàn)了一個實驗課程預(yù)約管理系統(tǒng)。該系統(tǒng)基于Spring,Spring MVC和MyBatis框架,采用Shiro對角色、權(quán)限管理并進(jìn)行加密處理,輔以Echarts等數(shù)據(jù)可視化工具,實現(xiàn)了課程預(yù)約、實驗室信息管理、數(shù)據(jù)分析等功能。該系統(tǒng)為實驗管理人員提供了實驗數(shù)據(jù)支撐,并方便了任課教師和實驗管理人員的溝通。
關(guān)鍵詞:SSM;實驗課程預(yù)約;管理系統(tǒng);系統(tǒng)設(shè)計;數(shù)據(jù)分析;實驗室信息管理
中圖分類號:TP315文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2020)09-0-03
0 引 言
目前,從以往的實驗課程預(yù)約來看,全校的實驗課程具有跨專業(yè)、多樣性等特點,所需軟件及環(huán)境往往由于溝通不便利等客觀因素造成了預(yù)約延遲或者不能安排的情況。鑒于此,設(shè)計并實現(xiàn)一個實驗課程預(yù)約管理系統(tǒng)對于實驗人員及時安排預(yù)約課程是非常有意義的。
SSM(Spring,SpringMVC,MyBatis)是目前比較成熟的Web項目框架[1],相比于SSH(Spring,Struts,Hibernate)框架,更容易入手;并且SpringMVC是輕量級Web框架,而MyBatis支持動態(tài)SQL查詢,存儲過程和高級映射是一個優(yōu)秀的持久層框架。因此,其被廣泛地應(yīng)用于各種系統(tǒng)的開發(fā),比如:商品智能推薦系統(tǒng)[2]、項目管理平臺[3]、植物辨識交互系統(tǒng)[4]、水質(zhì)監(jiān)測數(shù)據(jù)管理系統(tǒng)[5]、創(chuàng)客教育教學(xué)資源庫研發(fā)系統(tǒng)[6]等。
因此,該實驗課程預(yù)約管理系統(tǒng)基于SSM框架進(jìn)行開發(fā),主要是方便實驗室管理人員管理以及教師實驗課程預(yù)約,可以實現(xiàn)實驗室軟件信息的及時更新,實驗室管理人員隨時安排、導(dǎo)出預(yù)約實驗課程信息等。此外,通過該系統(tǒng)還可以對實驗課程信息及學(xué)生實驗情況等進(jìn)行數(shù)據(jù)分析,為各專業(yè)上機(jī)實踐情況提供參考意見。因此,實驗課程預(yù)約管理系統(tǒng)對于教師與實驗室管理人員之間的溝通更便利、更流程化,避免了各種信息不暢的情況。
1 系統(tǒng)的功能設(shè)計
該系統(tǒng)主要是方便實驗室管理人員管理以及任課教師課程預(yù)約,可有效地彌補(bǔ)之前信息不均衡的缺憾,實現(xiàn)以下幾方面的功能。
(1)有效地完善實驗相關(guān)信息以備教務(wù)人員查詢
之前通過Email或者電話預(yù)約實驗課程時,往往由于一些客觀原因,遺漏一些重要的實驗信息,或者課程名稱、所需軟件環(huán)境等關(guān)鍵字段不準(zhǔn)確,造成任課教師和實驗室管理人員之間的信息不均衡。通過該系統(tǒng),所有必要信息必須通過網(wǎng)上申請糾錯,可以有效避免此類問題的出現(xiàn)。
(2)加強(qiáng)任課教師與實驗室管理人員的互動溝通
通過該系統(tǒng),任課教師可以向?qū)嶒炇夜芾砣藛T提出所需機(jī)器數(shù)、軟件環(huán)境、網(wǎng)絡(luò)等要求,并可以得到反饋意見,比如:上機(jī)時間不合適、機(jī)房軟件無法滿足等信息,都可以及時反饋,加強(qiáng)任課教師與實驗室管理人員的溝通。另外,所需軟件也可以得到及時安裝。
(3)提供豐富的實驗數(shù)據(jù)分析信息
通過該系統(tǒng),任課教師可以查看自己所帶的實驗學(xué)生信息,尤其是大面積基礎(chǔ)課,實驗學(xué)生的專業(yè)、班級等信息;實驗室管理人員可以查看所有時間段的實驗情況,給出一個學(xué)期某個時間段實驗課程情況、某個學(xué)年實驗課程信息等,方便進(jìn)行統(tǒng)計,以備教務(wù)人員查詢。
(4)實現(xiàn)優(yōu)秀教學(xué)資源共享接口
該系統(tǒng)可以預(yù)約虛擬實驗,并預(yù)留在線虛擬實驗、教師上傳課件資源和學(xué)生上傳下載資源等的接口,以備后續(xù)擴(kuò)展。其主要具體功能模塊有機(jī)房信息管理、教師實驗課程預(yù)約、實驗室管理預(yù)約信息、安排預(yù)約實驗課程信息、統(tǒng)計并導(dǎo)出預(yù)約課程信息、角色控制、數(shù)據(jù)分析等。
2 系統(tǒng)實現(xiàn)及關(guān)鍵技術(shù)
2.1 開發(fā)及運行環(huán)境
整個系統(tǒng)開發(fā)環(huán)境的操作系統(tǒng)是Windows 10,而運行環(huán)境的操作系統(tǒng)是CentOS 7.3,由此可以看出采用Java開發(fā)的系統(tǒng)具有平臺無關(guān)性。因此,此系統(tǒng)不僅可以部署在Windows環(huán)境下,也可以部署在Linux,CentOS及樹莓派上。整個系統(tǒng)開發(fā)環(huán)境見表1所列,系統(tǒng)運行環(huán)境見表2所列。
2.2 SSM框架配置
該系統(tǒng)采用SSM架構(gòu)。Spring是非侵入式的框架,具有控制反轉(zhuǎn)和面向切面的特點,根據(jù)配置文件指定使用特定參數(shù),調(diào)用實體類的構(gòu)造方法來實例化對象。Spring AOP可根據(jù)配置信息攔截請求,作“切面”進(jìn)行業(yè)務(wù)處理能容易地實現(xiàn)分模塊開發(fā)和維護(hù)。SpringMVC是MVC分層開發(fā)的理念,屬于Spring下的子模塊。SpringMVC將業(yè)務(wù)開發(fā)邏輯進(jìn)行模塊劃分,實現(xiàn)不同層業(yè)務(wù)代碼之間盡可能淺的交互,便于維護(hù)和拓展。它的核心DispatcherServlet會根據(jù)配置信息匹配相應(yīng)的處理,這些處理的操作則是由Controller來實現(xiàn)的。MyBatis則是對JDBC的封裝,避免了所有JDBC的手動設(shè)置等操作,標(biāo)準(zhǔn)化數(shù)據(jù)庫操作,通過XML或注解來配置,實現(xiàn)SQL語句與服務(wù)器邏輯代碼分離。
以實驗室機(jī)房管理模塊為例,來說明SSM框架的配置。首先,要在數(shù)據(jù)庫中建立1張Classroom表,對應(yīng)8個字段,包含機(jī)房的編號、校區(qū)(奉賢與徐匯)、可容納學(xué)生人數(shù)、機(jī)房軟件安裝信息等;然后,MyBatis提供數(shù)據(jù)表和持久化類之間的映射關(guān)系,使用XML將接口和Java對象映射成數(shù)據(jù)庫中的記錄。這里與Classroom表相對應(yīng)的持久化類(Java對象)為Classroom,Classroom Dao.xml存放了對Classroom操作的所有SQL語句,其部分代碼如下:
insert into classroom
classroom_id,
name,
#{classroomId,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR},
然后根據(jù)配置文件applicationContext.xml將Spring與MyBatis進(jìn)行整合,由Spring管理MyBatis;再根據(jù)配置文件springMVC.xml將Spring與SpringMVC整合起來。
2.3 基于Shiro的角色控制
任何一個Web系統(tǒng)都有一個十分關(guān)鍵、不能缺少的角色就是超級管理員,通過他們的操作不僅可以創(chuàng)設(shè)相應(yīng)角色, 同時還可以為各個角色進(jìn)行權(quán)限的分配。不同權(quán)限的人對系統(tǒng)有著不同的操作權(quán)力和能見度,比如,擁有菜單維護(hù)權(quán)限的用戶能夠管理前臺網(wǎng)站菜單,并且同時可以管理菜單相對的頁面。各種角色的管理者都有專屬的權(quán)限,這也極大地確保了前臺Web系統(tǒng)所具備的安全性特征。
Apache Shiro是一個常用且使用最多的Java安全框架,它可以提供身份驗證、授權(quán)、會話管理和加密[7]。根據(jù)機(jī)房需要,系統(tǒng)使用Shiro設(shè)計了4個主要權(quán)限角色:超級管理員、管理員、領(lǐng)導(dǎo)、教師用戶。通過注解的方式以及HTML標(biāo)簽兩種Shiro應(yīng)用方式,對4個權(quán)限角色進(jìn)行權(quán)限劃分,如下:
(1)教師用戶權(quán)限:新增申請、撤銷個人申請、接收安排反饋Email;
(2)領(lǐng)導(dǎo)權(quán)限:審核用戶申請;
(3)管理員權(quán)限:新增用戶、角色分配、用戶刪除、安排申請、退回申請、發(fā)送反饋郵件;
(4)超級管理員:以上權(quán)限均擁有。
Shiro的實現(xiàn)需要權(quán)限表、角色表和角色權(quán)限關(guān)系表,在web.xml,applicationContext-shiro.xml,SpringMVC.xml中加入配置信息,增加對Shiro的支持。在web.xml加中Shiro過濾器,代碼如下:
另外,在SpringMVC.xml中啟用Shiro注解的配置如下:
depends-on="lifecycleBeanPostProcessor">
2.4 存儲過程及觸發(fā)器的應(yīng)用
在排課的過程中,會對教師、教室、課程、課程安排等多張表進(jìn)行操作,有時候會對多張表同時操作,為保證數(shù)據(jù)的完整性和一致性,在排課時采用存儲過程和觸發(fā)器。在實現(xiàn)排課過程中使用存儲過程來查找可使用的實驗室,根據(jù)輸入的校區(qū)、起止周、星期、節(jié)次信息,設(shè)計存儲過程查詢多張表,找到在所需時間段空閑的實驗室。觸發(fā)器可以用于刪除操作,當(dāng)刪除主表中的一行記錄時,自動觸發(fā)delete觸發(fā)器,將表中的相應(yīng)記錄標(biāo)記為刪除,比如刪除某一課程,則選課表中的該課程的所有選課記錄標(biāo)記為已經(jīng)刪除。觸發(fā)器也可以用于新增和修改,比如當(dāng)排課表中插入一條記錄的時候,自動在排課詳情表里插入對應(yīng)的多條記錄。同樣,當(dāng)排課表中的某條記錄被更改時,排課詳情表中對應(yīng)的多條記錄也將被刪除與重建。刪除課程的觸發(fā)器部分代碼如下:
CREATE TRIGGER `deleteCourse` BEFORE DELETE ON `course` FOR EACH ROW BEGIN
update application set is_existing = 0 where course_id = old.course_id;
delete from course_arrange where course_id = old.course_id;
END
這個觸發(fā)器意味著一旦刪除課程,申請表將會被修改,同時課程安排表將會刪除該課程相關(guān)的安排。
2.5 數(shù)據(jù)可視化及實用化設(shè)計
采用Echarts開源數(shù)據(jù)可視化工具,可以讓數(shù)據(jù)變成生動的圖像,使數(shù)據(jù)更加直觀,給用戶帶來更好的體驗[8]。系統(tǒng)中對不同類型課程的選課人數(shù)進(jìn)行統(tǒng)計,如圖1所示。
另外,用戶希望在自己的申請得到通過或者退回時立即收到通知,如果通過實驗管理員排課后手動電話通知,就大大降低了辦事效率。這里使用“一鍵發(fā)送”郵箱的方式極大地方便了實驗管理員通知申請預(yù)約的教師,同時申請預(yù)約的教師還可以及時看到申請結(jié)果,然后做相應(yīng)的處理。
此外,根據(jù)實際的需要,學(xué)校需要對實驗室預(yù)約申請進(jìn)行歸檔,教師需要填寫紙質(zhì)文檔并且到管理中心上交。系統(tǒng)提供了PDF版的申請書,用戶的申請信息全部由系統(tǒng)從數(shù)據(jù)庫獲取,然后生成,用戶不需要重復(fù)填寫申請。而且,系統(tǒng)提供了PDF文件在瀏覽器預(yù)覽的功能,一方面,用戶可以下載所有已經(jīng)通過審核和排課的申請,下載PDF文件以便打印;另一方面,用戶可以在線預(yù)覽。動態(tài)生成PDF并進(jìn)行預(yù)覽的效果如圖2所示。
除了在線打印PDF功能外,本系統(tǒng)還提供了Excel文件下載功能。在數(shù)據(jù)量比較大的時候,管理員可以下載Excel文件進(jìn)行查看和統(tǒng)計。Excel導(dǎo)出功能如圖3所示。
3 結(jié) 語
根據(jù)實際的預(yù)約實驗課程的需求,本文設(shè)計并實現(xiàn)一個基于SSM的實驗課程預(yù)約系統(tǒng)。該系統(tǒng)實現(xiàn)了實驗課程的預(yù)約申請,實驗課程的安排,發(fā)送郵件通知,實驗室信息、學(xué)院信息、實驗類別、用戶等信息的管理以及紙質(zhì)文檔下載備案等功能。通過這樣一個一體化的網(wǎng)站平臺,大大節(jié)省了傳統(tǒng)實驗室在預(yù)約、排課時所浪費的人力、物力,以及避免了在手動排課時出現(xiàn)的失誤,極大地方便了師生使用實驗室。并且,該系統(tǒng)形成了權(quán)限分級,具有良好的接口,便于擴(kuò)展。
參考文獻(xiàn)
[1]李洋.SSM框架在Web應(yīng)用開發(fā)中的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2016,26(12):190-194.
[2]潘承昌,吳戀,劉遠(yuǎn)珍,等.基于SSM的商品智能推薦系統(tǒng)的開發(fā)研究[J].物聯(lián)網(wǎng)技術(shù),2018,8(7):73-75.
[3]甄海濤,楊卓林,趙寒濤.基于SSM架構(gòu)的項目管理平臺設(shè)計[J].自動化技術(shù)與應(yīng)用,2019,38(5):183-185.
[4]毛啟,崔忠偉,趙勇,等.植物辨識交互系統(tǒng)的設(shè)計及實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2019,9(5):70-72.
[5]王梓,夏凱.基于SSM框架的水質(zhì)監(jiān)測數(shù)據(jù)管理系統(tǒng)研究[J].計算機(jī)時代,2018(7):25-27.
[6]陳林龍,李志飛,向凱悅,等.基于SSM的創(chuàng)客教育教學(xué)資源庫研發(fā)系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2019,9(1):111-113.
[7]易文康,程驊,程耕國.Shiro框架在Web系統(tǒng)安全性上的改進(jìn)與應(yīng)用[J].計算機(jī)工程,2018,44(11):135-139.
[8]王龍,王一男.基于ECharts的可視化高校綜合信息分析決策系統(tǒng)[J].現(xiàn)代電子技術(shù),2017,40(6):68-70.
[9]白春強(qiáng).基于SSM框架的投資項目經(jīng)濟(jì)評價系統(tǒng)分析與實現(xiàn)[D].濟(jì)南:山東大學(xué),2019.
[10]李文杰.基于SSM框架的高校信息采集與管理系統(tǒng)[J].信息記錄材料,2019(10):144-145.