德州職業(yè)技術(shù)學(xué)院 楊 洋
本文通過(guò)對(duì)Apache技術(shù)架構(gòu)和優(yōu)勢(shì)的介紹,詳細(xì)分析了Apache學(xué)生工作管理系統(tǒng)的設(shè)計(jì)和應(yīng)用,以期能夠利用Apache開(kāi)發(fā)管理系統(tǒng)充分滿(mǎn)足學(xué)生管理需要,提高管理效率和質(zhì)量。
Apache技術(shù)架構(gòu)主要包括應(yīng)用代碼、主題、安全經(jīng)理以及領(lǐng)域四個(gè)部分構(gòu)成。其中,SubJect作為最基礎(chǔ)的部分,是指登錄對(duì)象,即學(xué)生管理主體;Realm作為信息溝通部分,可滿(mǎn)足Apache和數(shù)據(jù)源的信息接收。SecurityManager負(fù)責(zé)對(duì)用戶(hù)權(quán)限的管理,Apache技術(shù)權(quán)限管理通過(guò)DAO數(shù)據(jù)庫(kù)進(jìn)行,實(shí)現(xiàn)登錄驗(yàn)證和授權(quán)認(rèn)證兩部分功能。接收到用戶(hù)請(qǐng)求后,針對(duì)性調(diào)取數(shù)據(jù)源,若難以滿(mǎn)足用戶(hù)需要,可利用自定義數(shù)據(jù)源方式來(lái)處理數(shù)據(jù)。管理人員通過(guò)配置文件或者信號(hào)進(jìn)行服務(wù)器的控制,文件可以分為端腳本、文檔或者.htaccess文件等。在Apache內(nèi)部主要存在主服務(wù)進(jìn)程、子服務(wù)進(jìn)程以及通信進(jìn)程三部分結(jié)構(gòu)。通信服務(wù)作為系統(tǒng)的重要部分,負(fù)責(zé)訪(fǎng)問(wèn)和連接端口,可同時(shí)進(jìn)行接收請(qǐng)求和喚醒請(qǐng)求的進(jìn)程。主服務(wù)進(jìn)程負(fù)責(zé)子進(jìn)程的創(chuàng)建和控制,并響應(yīng)主要服務(wù)進(jìn)程,讀取配置文件,并給子進(jìn)程拷貝。子進(jìn)程是對(duì)Http請(qǐng)求的響應(yīng),執(zhí)行應(yīng)答循環(huán)。主進(jìn)程務(wù)必保證子進(jìn)程處于等待連接狀態(tài),掌握每個(gè)子進(jìn)程狀態(tài),方便主進(jìn)程進(jìn)行查詢(xún)。
考慮到學(xué)生工作管理的特殊性,用戶(hù)需求呈現(xiàn)出多元化特點(diǎn),系統(tǒng)后臺(tái)需要對(duì)用戶(hù)請(qǐng)求進(jìn)行統(tǒng)一處理,使用Struts框架能夠統(tǒng)一處理URL請(qǐng)求,并封裝數(shù)據(jù)。服務(wù)器發(fā)出請(qǐng)求后,調(diào)取request數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)類(lèi)型,程序員將工作重心轉(zhuǎn)為業(yè)務(wù)邏輯,提高運(yùn)行效率,減少bug的出現(xiàn)。以Spring框架為基礎(chǔ),基于doService完成上層調(diào)取,在下層處理中由用戶(hù)操作。使用iBatis框架,充分發(fā)揮其便于控制的優(yōu)勢(shì),面向SQL可操作度高,數(shù)據(jù)訪(fǎng)問(wèn)層設(shè)計(jì)基于Spring框架實(shí)現(xiàn)。
學(xué)生工作管理系統(tǒng)涉及范圍較廣,覆蓋于學(xué)生入學(xué)至畢業(yè)全周期,在功能設(shè)計(jì)上要盡量滿(mǎn)足校園管理的需要,輔助學(xué)生工作的開(kāi)展。如圖1所示,其主要功能如下:(1)系統(tǒng)設(shè)置。系統(tǒng)管理人員對(duì)系統(tǒng)進(jìn)行維護(hù)和設(shè)計(jì),修改系統(tǒng)內(nèi)容等;(2)數(shù)據(jù)管理。系統(tǒng)管理人員對(duì)學(xué)生工作相關(guān)數(shù)據(jù)進(jìn)行管理,數(shù)據(jù)包括教學(xué)工作、學(xué)生寢室、學(xué)校管理等工作;(3)信息發(fā)布。面向全體師生公開(kāi)信息,保證政策文件、放假通知等信息通知;(4)檔案管理。以歷史數(shù)據(jù)和歷史記錄為主,進(jìn)行數(shù)據(jù)歸檔管理;(5)班級(jí)管理。主要圍繞班級(jí)集體展開(kāi),對(duì)班級(jí)成員、處分、活動(dòng)記錄等數(shù)據(jù)進(jìn)行管理;(6)班主任管理。班主任工作評(píng)比、考勤情況;(7)學(xué)生管理。覆蓋學(xué)生從入學(xué)至畢業(yè)的完整數(shù)據(jù)記錄,包括學(xué)生學(xué)習(xí)成績(jī)、選課情況、獎(jiǎng)學(xué)金情況、處分情況等,一旦出現(xiàn)數(shù)據(jù)變更也會(huì)實(shí)時(shí)更新在系統(tǒng)上;(8)公寓管理。主要對(duì)住校生生活信息進(jìn)行管理,包括衛(wèi)生檢查情況、處分情況、分寢記錄等;(9)考試管理。主要記錄學(xué)生考試信息、考試成績(jī)、掛科情況、補(bǔ)考情況等;(10)助學(xué)貸款管理。學(xué)校給經(jīng)濟(jì)困難的學(xué)生提供勤工儉學(xué)的機(jī)會(huì),根據(jù)崗位情況、人員安排、工作時(shí)間、薪酬待遇進(jìn)行管理。
圖1 系統(tǒng)功能設(shè)計(jì)
為保證系統(tǒng)穩(wěn)定運(yùn)行,設(shè)計(jì)多個(gè)類(lèi)型的接口服務(wù)于系統(tǒng)數(shù)據(jù)的應(yīng)用。對(duì)系統(tǒng)修改、查詢(xún)等簡(jiǎn)單操作,主要利用SQL語(yǔ)句實(shí)現(xiàn),數(shù)據(jù)經(jīng)過(guò)傳輸至本地模塊,在數(shù)據(jù)組作用下反饋至Javascript層,由此完成回調(diào)操作。數(shù)據(jù)處理接口涉及功能豐富,包括delete、seek等接口形式,數(shù)據(jù)處理語(yǔ)句可以到達(dá)本地層,并響應(yīng)對(duì)應(yīng)的執(zhí)行操作。文件接口和上述原理一致,以參數(shù)形態(tài)傳輸函數(shù),在本地模塊中做出對(duì)應(yīng)的刪除或者讀寫(xiě),經(jīng)過(guò)處理后借助于Json數(shù)組回傳,Javascript層會(huì)得到對(duì)應(yīng)的參數(shù)。讀取文件主要利用arrayparam eter參數(shù)得到,在參數(shù)作用下可以讀取文件信息進(jìn)行處理。使用callbackcontext參數(shù)可以解讀文件,向Jauascript層反饋。寫(xiě)入文件、刪除文件和上述流程一致,寫(xiě)入成功或失敗均反饋狀態(tài)信息。系統(tǒng)在運(yùn)行過(guò)程中,在服務(wù)器發(fā)出信息后通知客戶(hù)端。在推送消息時(shí),借助于推送接口方便操作,拓展模塊會(huì)調(diào)取服務(wù)組件,借助于指定通道完成消息的傳輸。
系統(tǒng)用戶(hù)主要通過(guò)瀏覽器登錄系統(tǒng),輸入網(wǎng)址后打開(kāi)網(wǎng)站頁(yè)面,用戶(hù)輸入賬號(hào)密碼后,系統(tǒng)對(duì)用戶(hù)賬號(hào)和密碼匹配性進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證的可進(jìn)入系統(tǒng)訪(fǎng)問(wèn)。未通過(guò)驗(yàn)證的,被禁止瀏覽系統(tǒng),禁止進(jìn)行下一步操作。登錄界面是對(duì)訪(fǎng)問(wèn)權(quán)限的篩查步驟,快速進(jìn)行身份驗(yàn)證。用戶(hù)登錄主要利用DbMySQL類(lèi),為了改善服務(wù)器負(fù)載,首先客戶(hù)端驗(yàn)證用戶(hù)賬號(hào)和密碼,不符合提出提醒和限制。
根據(jù)用戶(hù)類(lèi)型進(jìn)入不同頁(yè)面,左側(cè)為系統(tǒng)導(dǎo)航目錄。如教師登錄系統(tǒng)后,目錄主要為學(xué)生基礎(chǔ)信息、課程表、成績(jī)管理、教學(xué)工作等內(nèi)容,教師有查詢(xún)、寫(xiě)入、修改和刪除的權(quán)限,可以根據(jù)教師的需要進(jìn)行數(shù)據(jù)的修改。教師點(diǎn)擊教學(xué)管理板塊后,會(huì)提示課程科目,教師選擇對(duì)應(yīng)的科目,進(jìn)入課程。可查詢(xún)或?qū)懭雽W(xué)生考勤情況、學(xué)生評(píng)價(jià)、作業(yè)上傳、教學(xué)資料上傳等內(nèi)容,查閱學(xué)生交作業(yè)的情況。如學(xué)生登錄系統(tǒng)后,可根據(jù)自身需要查詢(xún)自己的個(gè)人信息、課程表、考試成績(jī)等內(nèi)容,但不能對(duì)上述內(nèi)容進(jìn)行修改或?qū)懭搿W(xué)生可以在網(wǎng)絡(luò)系統(tǒng)中完成作業(yè),并修改下載學(xué)習(xí)資料。家長(zhǎng)也可進(jìn)入系統(tǒng)訪(fǎng)問(wèn)對(duì)應(yīng)的板塊,包括意見(jiàn)箱、評(píng)價(jià)管理、班費(fèi)學(xué)費(fèi)收繳情況、學(xué)生考勤、學(xué)生成績(jī)等內(nèi)容。家長(zhǎng)只擁有寫(xiě)入、修改、刪除意見(jiàn)箱的權(quán)限,不能對(duì)學(xué)生信息進(jìn)行修改,只能瀏覽網(wǎng)頁(yè)內(nèi)容。系統(tǒng)管理人員登錄系統(tǒng)后,可添加、編輯以及刪除用戶(hù),對(duì)于學(xué)生管理等板塊沒(méi)有權(quán)限。
系統(tǒng)設(shè)計(jì)監(jiān)控模塊負(fù)責(zé)對(duì)負(fù)載情況、性能、服務(wù)狀態(tài)進(jìn)行監(jiān)控,系統(tǒng)可自行發(fā)現(xiàn)故障問(wèn)題,給系統(tǒng)管理人員發(fā)出警報(bào)信息,便于系統(tǒng)管理人員及時(shí)處理。監(jiān)控板塊通過(guò)記錄Apache客戶(hù)端請(qǐng)求結(jié)構(gòu)數(shù)據(jù)項(xiàng),包括數(shù)據(jù)請(qǐng)求量、請(qǐng)求類(lèi)型以及IP地址等,當(dāng)一定時(shí)間內(nèi)訪(fǎng)客數(shù)量大幅增加,資源利用率顯著增加時(shí),監(jiān)控模塊能夠相應(yīng)記錄,并生成具備時(shí)間戳的數(shù)據(jù)文件,可以對(duì)監(jiān)控?cái)?shù)據(jù)展開(kāi)整理。對(duì)系統(tǒng)性能監(jiān)控作為控制主要輸入部分,負(fù)責(zé)采集和儲(chǔ)存硬件設(shè)備性能。通過(guò)proc文件獲得系統(tǒng)內(nèi)存、交換區(qū)和處理器信息,根據(jù)負(fù)載監(jiān)控?cái)?shù)據(jù)計(jì)算吞吐量,根據(jù)吞吐量和設(shè)備利用率計(jì)算設(shè)備服務(wù)需求,確定服務(wù)時(shí)間。如CPU設(shè)備服務(wù)需求是利用率和吞吐量的比值。通過(guò)對(duì)性能的監(jiān)控掌握系統(tǒng)負(fù)載情況,當(dāng)系統(tǒng)處于超載狀態(tài)中,對(duì)控制模塊發(fā)出到達(dá)請(qǐng)求。對(duì)于服務(wù)狀態(tài)的監(jiān)控,主要對(duì)Apache進(jìn)程運(yùn)行狀態(tài)進(jìn)行監(jiān)控,一是監(jiān)控服務(wù)進(jìn)程運(yùn)行與否,二是模擬客戶(hù)端的請(qǐng)求,判斷請(qǐng)求是否得到處理。通過(guò)對(duì)客戶(hù)端請(qǐng)求進(jìn)行監(jiān)控,一旦發(fā)現(xiàn)主服務(wù)進(jìn)程發(fā)生崩潰就停止運(yùn)行,立即重啟Apache進(jìn)程,可以保證服務(wù)得到有效應(yīng)用。
系統(tǒng)運(yùn)行主要受到工作負(fù)載的影響,如查詢(xún)成績(jī)、選課階段,大批量學(xué)生登錄賬戶(hù)訪(fǎng)問(wèn)系統(tǒng),嚴(yán)重影響系統(tǒng)運(yùn)行狀態(tài)。因此,在配置參數(shù)上通過(guò)可控制和非可控制的配置參數(shù)設(shè)計(jì),適應(yīng)計(jì)算環(huán)境改變對(duì)于系統(tǒng)的影響。非可控制配置參數(shù)無(wú)法被動(dòng)態(tài)化修改,參數(shù)對(duì)于系統(tǒng)性能造成的影響較小,經(jīng)過(guò)修改后需要重啟系統(tǒng)才能發(fā)揮作用??煽刂婆渲脜?shù)可以被動(dòng)態(tài)化修改,對(duì)于參數(shù)修改不需要重啟程序,參數(shù)修改可以保證系統(tǒng)適應(yīng)負(fù)載的變化,改進(jìn)系統(tǒng)的性能。Apache系統(tǒng)控制算法可以對(duì)可控制配置參數(shù)進(jìn)行調(diào)節(jié),控制算法可以找到配置參數(shù)進(jìn)行參數(shù)優(yōu)化。在一定控制周期內(nèi)對(duì)系統(tǒng)工作狀態(tài)進(jìn)行檢測(cè),如果服務(wù)發(fā)生故障,對(duì)服務(wù)進(jìn)程重新啟動(dòng)。為滿(mǎn)足當(dāng)前負(fù)載要求,控制算法發(fā)出重新配置指令,達(dá)到期望服務(wù)狀態(tài)。
結(jié)論:在高校學(xué)生工作管理中,引入Apache技術(shù)進(jìn)行管理系統(tǒng)的開(kāi)發(fā),以師生為主要服務(wù)對(duì)象,設(shè)置響應(yīng)的權(quán)限標(biāo)準(zhǔn),保證師生可以登錄系統(tǒng)查詢(xún)和使用信息系統(tǒng),滿(mǎn)足其訪(fǎng)問(wèn)需要。系統(tǒng)能夠自如應(yīng)對(duì)超負(fù)載狀態(tài),在訪(fǎng)問(wèn)量激增狀態(tài)下仍可保證穩(wěn)定運(yùn)行,響應(yīng)用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求。