羅亞萍
(白水縣技工學(xué)校,陜西渭南,715600)
目前計(jì)算機(jī)技術(shù)已經(jīng)在各行業(yè)領(lǐng)域廣泛應(yīng)用,各類應(yīng)用軟件更是給人們的生活、工作、學(xué)習(xí)帶來(lái)極大便利。為了滿足中專技校學(xué)生數(shù)量不斷增加,學(xué)校不選購(gòu)入新機(jī)器開(kāi)展教學(xué)工作,計(jì)算機(jī)實(shí)驗(yàn)室傳統(tǒng)管理模式已經(jīng)無(wú)法滿足管理工作所需,需要耗費(fèi)大量的時(shí)間、人力等。再加上機(jī)房上機(jī)信息所需人工匯總錄入,導(dǎo)致機(jī)房的具體運(yùn)營(yíng)情況與歷史記錄無(wú)法統(tǒng)一調(diào)度管理[1]。這些都迫切需要開(kāi)發(fā)一個(gè)適用于中專技校計(jì)算機(jī)實(shí)驗(yàn)室管理工作的系統(tǒng),能夠集中管理大量計(jì)算機(jī)設(shè)備,方便學(xué)校安排上機(jī)課程,提高機(jī)房的使用率。因此本文提出應(yīng)用JSP、MySQL、Hibernate等技術(shù),設(shè)計(jì)中專技校計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng),方便學(xué)校機(jī)房管理工作人員,統(tǒng)一高效的對(duì)機(jī)房實(shí)施有效管理。
需求分析作為軟件工程中的關(guān)鍵環(huán)節(jié)之一,對(duì)于設(shè)計(jì)中專技校計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)需求,從功能層面,隨著中專技校計(jì)算機(jī)實(shí)驗(yàn)室的高頻率應(yīng)用,給傳統(tǒng)機(jī)房管理工作帶來(lái)極大挑戰(zhàn),本次系統(tǒng)設(shè)計(jì)旨在能夠設(shè)計(jì)開(kāi)發(fā)一個(gè)可以簡(jiǎn)單操作、高效管理的管理系統(tǒng)。根據(jù)本次系統(tǒng)設(shè)計(jì)功能需求,需要實(shí)現(xiàn)用戶管理模塊、機(jī)房管理模塊、課程管理模塊[2]。從性能層面,一方面,設(shè)計(jì)此系統(tǒng)主要以中專技校的在校師生為目標(biāo)用戶,對(duì)系統(tǒng)反應(yīng)時(shí)間有較高要求,在實(shí)際使用中不會(huì)感到明顯延遲,0.5s以內(nèi)更新頁(yè)面,2s以內(nèi)跳轉(zhuǎn)頁(yè)面。另一方面,本次設(shè)計(jì)該實(shí)驗(yàn)室管理系統(tǒng),需要容許師生共同高峰,達(dá)到并發(fā)容量性能需求,對(duì)于同一時(shí)間師生800人共同此系統(tǒng),要保證每秒支持300次并發(fā)訪問(wèn),從而避免師生共同訪問(wèn)高峰期造成宕機(jī)情況。
系統(tǒng)設(shè)計(jì)對(duì)于軟件開(kāi)發(fā)至關(guān)重要,是否可以深入分析會(huì)嚴(yán)重影響系統(tǒng)實(shí)現(xiàn),所以系統(tǒng)開(kāi)發(fā)前的設(shè)計(jì)環(huán)節(jié)至關(guān)重要。
本次設(shè)計(jì)系統(tǒng)各功能見(jiàn)圖1,結(jié)合系統(tǒng)設(shè)計(jì)需求分析,系統(tǒng)功能設(shè)計(jì)包括實(shí)驗(yàn)課程管理、系統(tǒng)幫助、用戶管理、機(jī)房管理等,此外也有用戶登錄以及系統(tǒng)設(shè)置等功能。需要注意的是設(shè)計(jì)本系統(tǒng)時(shí),面對(duì)管理員、教師、學(xué)生這三類不同角色,賦予不同角色的權(quán)限也各不相同[4]。
圖1 系統(tǒng)功能設(shè)計(jì)圖
本次系統(tǒng)設(shè)計(jì)性能著重考慮以下四方面:
(1)利用多核提高性能,一般情況下一個(gè)進(jìn)程僅可利用一個(gè)核心CPU,對(duì)大量請(qǐng)求處理過(guò)程中,如果單核心設(shè)計(jì)往往無(wú)法滿足高吞吐量,所以需要充分利用計(jì)算機(jī)多核心優(yōu)勢(shì),充分利用多進(jìn)程提高系統(tǒng)性能。
(2)為了對(duì)系統(tǒng)使用中用戶發(fā)送HTTP請(qǐng)求,成功解決端口沖突問(wèn)題,本次系統(tǒng)設(shè)計(jì)需要反向代理依據(jù)網(wǎng)站,向網(wǎng)站相應(yīng)端口自動(dòng)發(fā)送具體請(qǐng)求,選擇反向代理。
(3)一般情況下服務(wù)器數(shù)據(jù)庫(kù)采用手動(dòng)打開(kāi)方式,然后連接服務(wù)器??墒窃诋a(chǎn)品環(huán)境內(nèi)無(wú)法由手動(dòng)完成全部工作,所以就應(yīng)用Bash腳本用于服務(wù)器的啟動(dòng)校本,從而完成服務(wù)器開(kāi)啟關(guān)閉[6]。
(4)對(duì)于后端服務(wù)器來(lái)講,保證服務(wù)器的運(yùn)行穩(wěn)定性至關(guān)重要,并不能遇到服務(wù)器就要停止還要考慮支持故障恢復(fù)。假若生產(chǎn)環(huán)境中進(jìn)行某操作造成bug情況,就會(huì)停止服務(wù)器的正常運(yùn)行,所以需要建立系統(tǒng)故障恢復(fù)機(jī)制,充分保障服務(wù)器的可靠穩(wěn)定運(yùn)行。
本次系統(tǒng)客戶端設(shè)計(jì)選擇基于J2EE框架,使用JSP配合HTML+CSS編寫界面,運(yùn)用JS編寫交互。服務(wù)器端選用JavaBean技術(shù),為每個(gè)業(yè)務(wù)層使用Tomcat服務(wù)編寫服務(wù)器完成對(duì)應(yīng)CRUD接口編寫,能夠?qū)ySQL用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),Hibernate作為服務(wù)器和數(shù)據(jù)庫(kù)交互性驅(qū)動(dòng)[3]。圖2為本系統(tǒng)設(shè)計(jì)整體架構(gòu)圖。
圖2 系統(tǒng)架構(gòu)圖
3.2.1 登陸功能
登錄界面作為用戶操作系統(tǒng)的首個(gè)界面,系統(tǒng)登錄界面需要面對(duì)管理員、教師、學(xué)生這三類用戶,因此需設(shè)計(jì)四個(gè)登錄相關(guān)界面。系統(tǒng)執(zhí)行界面時(shí)用戶需要選擇具體類型,經(jīng)處理用戶輸入的用戶名與密碼,即可跳轉(zhuǎn)相應(yīng)頁(yè)面。此功能可以面對(duì)系統(tǒng)不同登錄對(duì)象與相應(yīng)頁(yè)面,如學(xué)生可以在輸入用戶名之后,點(diǎn)擊登錄跳轉(zhuǎn)至學(xué)生表內(nèi)查詢相應(yīng)的學(xué)生名字和密碼,給出輸入正確與否的提示信息。
3.2.2 用戶管理功能
用戶管理主要負(fù)責(zé)用戶的基本信息管理、上機(jī)信息管理、充值信息管理這三部分。
基本信息管理,師生可以操作系統(tǒng)查看個(gè)人基本信息,如姓名、學(xué)號(hào)、班級(jí)、賬戶余額、注冊(cè)時(shí)間等,以及修改密碼。管理員可以對(duì)系統(tǒng)全部信息進(jìn)行查看、修改、刪減等操作。
上機(jī)信息管理,包含在線信息及歷史信息,只要學(xué)生登錄系統(tǒng)就可以記錄相應(yīng)的上機(jī)信息,有學(xué)號(hào)、電腦編號(hào)、開(kāi)始結(jié)束時(shí)間、花費(fèi)、時(shí)長(zhǎng)等。
充值信息管理,負(fù)責(zé)對(duì)師生每次使用系統(tǒng)充值信息的詳細(xì)記錄,將這些信息存儲(chǔ)于數(shù)據(jù)庫(kù)表內(nèi),在此數(shù)據(jù)庫(kù)表創(chuàng)建類,可以完成數(shù)據(jù)對(duì)象存取訪問(wèn)式操作,這作為實(shí)現(xiàn)其他重要功能的基礎(chǔ)。
3.2.3 機(jī)房管理功能
在用戶操作系統(tǒng)使用機(jī)房后,可以調(diào)用程序函數(shù),獲取計(jì)算機(jī)機(jī)房的具體應(yīng)用詳情,最終在頁(yè)面顯示。以計(jì)算機(jī)機(jī)房的電腦使用情況為例,可以展示的相關(guān)頁(yè)面是全部機(jī)房具體應(yīng)用詳情,部分機(jī)房的電腦應(yīng)用詳情。在用戶點(diǎn)擊機(jī)房應(yīng)用情況后,可以調(diào)用功能函數(shù)獲得機(jī)房的使用情況,在頁(yè)面顯示查詢sql語(yǔ)句,可以獲得機(jī)房、電腦的使用情況。在頁(yè)面中顯示機(jī)房信息列表,用戶可以點(diǎn)擊此列表成功“進(jìn)入”鏈接,之后接口調(diào)用getIn函數(shù)并返回success。
3.2.4 課程管理功能
師生可以查看院系課表,管理員具備操作系統(tǒng)的超級(jí)用戶權(quán)限,可以隨時(shí)訪問(wèn)全部課表。師生在應(yīng)用此系統(tǒng)時(shí),可以查看院系課程,相應(yīng)的管理員具備查看全部課程的權(quán)限,由admin_courselook.jsp為管理員展示課程列表,由stu_courselook.jap為學(xué)生展示課程列表,由tea_courselook.jap為教師展示課程列表。管理員具備對(duì)課程的刪除、新增、編輯等功能,完成課程編輯,對(duì)數(shù)據(jù)庫(kù)表內(nèi)的相關(guān)數(shù)據(jù)實(shí)時(shí)更新,并對(duì)之前所得課程記錄也實(shí)時(shí)更新。對(duì)于學(xué)校排課,此系統(tǒng)還專門設(shè)計(jì)了教師安排院系課程的功能,在顯示課表list界面,教師可以點(diǎn)擊“排課”這一鏈接,即可跳轉(zhuǎn)至tea_arrangeCourese.jsp頁(yè)面,此處下拉列表內(nèi)填寫相應(yīng)時(shí)間后,可以在此時(shí)間段的空閑機(jī)房列表內(nèi)出現(xiàn)。如果填寫機(jī)房會(huì)出現(xiàn)相應(yīng)的排課情況。用戶選擇一個(gè)機(jī)房輸入課程編號(hào)后,確定可以將教師的編號(hào)、課程編號(hào)、實(shí)驗(yàn)室編號(hào),開(kāi)始和結(jié)束時(shí)間,均寫入數(shù)據(jù)庫(kù)內(nèi),即可完成排課操作。
3.2.5 系統(tǒng)設(shè)置
設(shè)置部分定義基本選項(xiàng)包括兩功能:修改密碼用戶可以對(duì)自己的密碼自行修改,經(jīng)后臺(tái)用戶可以腳本自動(dòng)錄入,通知用戶對(duì)自己的密碼盡快修改。用戶經(jīng)此按鈕正確回到主界面之后,可以重新鍵入登錄信息切換用戶。在其他方面設(shè)計(jì),需要保證系統(tǒng)界面友好,用戶界面應(yīng)當(dāng)擁有良好交互設(shè)計(jì),方便用戶的系統(tǒng)操作。還要確??焖傧鄳?yīng),對(duì)用戶輸入及請(qǐng)求可以迅速處理,由于所需較長(zhǎng)處理時(shí)間,這就要求在處理過(guò)程中及時(shí)告知用戶正在處理,而非界面無(wú)響應(yīng)。數(shù)據(jù)庫(kù)作為儲(chǔ)存用戶信息的地方,本數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)作為系統(tǒng)設(shè)計(jì)中抽象數(shù)據(jù),例如用戶列表、機(jī)房列表。
本次系統(tǒng)設(shè)計(jì)使用Hibernate保存相關(guān)數(shù)據(jù),DAO操作數(shù)據(jù)庫(kù)并根據(jù)數(shù)據(jù)庫(kù)表一一創(chuàng)建相應(yīng)文件。在com.stuman.doman包內(nèi)存儲(chǔ)映射文件,以此為例映射文件有相應(yīng)的類名與數(shù)據(jù)庫(kù)表,在學(xué)生表id列內(nèi)映射類id屬性。所涉及數(shù)據(jù)庫(kù)表應(yīng)當(dāng)具備對(duì)應(yīng)持久化類,確保數(shù)據(jù)庫(kù)表的各字段持久化。本次系統(tǒng)設(shè)計(jì)應(yīng)用MySQL設(shè)計(jì)管理系統(tǒng)多張數(shù)據(jù)庫(kù)表,以數(shù)據(jù)庫(kù)設(shè)計(jì)范式為依據(jù)分別設(shè)計(jì)管理員列表、教師列表、實(shí)驗(yàn)室列表、上機(jī)列表、電腦列表、課程表、課表等[5]。以管理員列表為例,此表主要負(fù)責(zé)對(duì)管理員系統(tǒng)操作用戶的具體信息加以記錄,包含管理員的id、密碼、姓名、注冊(cè)時(shí)間等屬性(見(jiàn)表1)。
表1 管理員表
該系統(tǒng)通過(guò)應(yīng)用JSF+Hibernate框架的機(jī)房管理系統(tǒng)工程,src目錄用于存放源文件,全部java類均在此目錄中定義,WebRoot目錄作為發(fā)布時(shí)此網(wǎng)站的根目錄,用于放置JSP頁(yè)面,WEB-INF目錄用于存放系統(tǒng)配置文件。本次系統(tǒng)的測(cè)試環(huán)境為Windows10,Eclipse運(yùn)行環(huán)境,Tomcat為輔助軟件,硬件CPU2.4GHz,4G運(yùn)行內(nèi)存。在開(kāi)發(fā)機(jī)房管理系統(tǒng)后,需要對(duì)系統(tǒng)測(cè)試詳細(xì)設(shè)計(jì),保證系統(tǒng)各功能符合預(yù)期。
以系統(tǒng)用戶界面測(cè)試為例,主要測(cè)試內(nèi)容為檢查每個(gè)鏈接是否可以正常跳轉(zhuǎn),完成對(duì)系統(tǒng)60個(gè)界面的跳轉(zhuǎn)測(cè)試,確保全部界面均可正常訪問(wèn),表2為本次系統(tǒng)的頁(yè)面鏈接檢查情況。
表2 系統(tǒng)用戶界面檢查樣例
表2系統(tǒng)測(cè)試結(jié)果發(fā)現(xiàn),用戶在登錄此系統(tǒng)時(shí),必填項(xiàng)均有相應(yīng)的提示信息,在信息不完整情況下給出無(wú)法登陸的提示信息。對(duì)于用戶功能正常測(cè)試,經(jīng)檢查“提交”按鈕,“添加”按鈕等功能是否正確。在重復(fù)添加主鍵時(shí),查看系統(tǒng)是否會(huì)提示錯(cuò)誤,對(duì)添加記錄包含外鍵字段,還應(yīng)當(dāng)檢查外鍵是否存在錯(cuò)誤情況。
根據(jù)本次系統(tǒng)測(cè)試實(shí)際情況,計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng),能夠極大程度方便師生更高效的利用教學(xué)資源,也進(jìn)一步方便管理員對(duì)教學(xué)資源的管理,與傳統(tǒng)實(shí)驗(yàn)室管理相較,設(shè)計(jì)此系統(tǒng)很大程度簡(jiǎn)化了繁瑣的設(shè)計(jì)過(guò)程,更在一定程度上方便了師生之間的教與學(xué),提高了教學(xué)資源應(yīng)用率,這樣學(xué)生的日常學(xué)習(xí)也就更加容易。再加上此系統(tǒng)所耗費(fèi)資金成本不高,有實(shí)際利用價(jià)值在校園學(xué)習(xí)教育中可以應(yīng)用。通過(guò)設(shè)計(jì)中應(yīng)用JSP技術(shù),在Hibernate框架下建立MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)該數(shù)據(jù)庫(kù)可以方便支持Web數(shù)據(jù)庫(kù)產(chǎn)品,且作為免費(fèi)數(shù)據(jù)庫(kù)技術(shù)也就更方便本次系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)。最后本系統(tǒng)采用JSP設(shè)計(jì)實(shí)現(xiàn),不同的系統(tǒng)用戶僅需經(jīng)Web瀏覽器,便可以在不同登錄界面輸入正確賬號(hào)密碼,即可成功進(jìn)入相應(yīng)應(yīng)用界面。系統(tǒng)界面友好簡(jiǎn)潔易操作,此系統(tǒng)能夠滿足絕大多數(shù)操作要求,所以此系統(tǒng)在實(shí)際技巧計(jì)算機(jī)實(shí)驗(yàn)室應(yīng)用可行。
通過(guò)本次針對(duì)中專技校開(kāi)發(fā)設(shè)計(jì)計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng),實(shí)現(xiàn)了用戶信息查詢、機(jī)房管理、實(shí)驗(yàn)課程排課、信息統(tǒng)計(jì)等功能。對(duì)各功能界面進(jìn)行一系列測(cè)試,發(fā)現(xiàn)系統(tǒng)現(xiàn)存部分問(wèn)題不斷完善系統(tǒng)。通過(guò)基于B/S架構(gòu)應(yīng)用J2EE,JSP與MySQL技術(shù),成功整合教學(xué)資源,便捷化系統(tǒng)操作極大的節(jié)約了人工成本與時(shí)間成本。