沈來信,楊 帆,吳曉盼
(黃山學(xué)院 信息工程學(xué)院,安徽 黃山 245041)
基于MVC模式的機(jī)房教學(xué)系統(tǒng)設(shè)計(jì)
沈來信,楊 帆,吳曉盼
(黃山學(xué)院 信息工程學(xué)院,安徽 黃山 245041)
教學(xué)系統(tǒng)采用 MVC 架構(gòu),利用 JavaBean、Servlet、TCP、UDP 以及組播等技術(shù),利用 Java 語言和MySQL 數(shù)據(jù)庫完成計(jì)算機(jī)機(jī)房的實(shí)驗(yàn)課教學(xué)與管理系統(tǒng),系統(tǒng)的超級管理員端安裝在中心服務(wù)器上,中級管理員端、教師端和學(xué)生端分別安裝在機(jī)房內(nèi)的管理員機(jī)器、教師機(jī)器和學(xué)生機(jī)器上。 該系統(tǒng)具有簽到考勤、設(shè)備監(jiān)控、視頻教學(xué)、遠(yuǎn)程協(xié)助、屏幕監(jiān)控和基于局域網(wǎng)的群聊、單聊等功能。 該系統(tǒng)的應(yīng)用可以提高學(xué)生的出勤率,幫助教師對學(xué)生進(jìn)行更有效的教學(xué)和管理,同時(shí)還能監(jiān)控設(shè)備的使用狀態(tài)與意外破壞等。
MVC;Servlet;組播;機(jī)房電子化系統(tǒng);考勤
當(dāng)前大多數(shù)高校的公共計(jì)算機(jī)類包括多媒體、網(wǎng)頁設(shè)計(jì)、各種語言類教學(xué)的實(shí)驗(yàn)與實(shí)踐課程是在計(jì)算機(jī)機(jī)房內(nèi)進(jìn)行的,實(shí)驗(yàn)與實(shí)踐課程在鞏固學(xué)生對理論知識的學(xué)習(xí)的同時(shí),還能提升學(xué)生實(shí)驗(yàn)與實(shí)踐的積極性和實(shí)際動(dòng)手應(yīng)用能力。由于同時(shí)上課的人數(shù)較多,機(jī)房課堂中存在著上課效率不高、管理難度大、師生交流機(jī)會(huì)少、重復(fù)問題多次解答以及平均每位同學(xué)得到解答的機(jī)會(huì)較少等問題。機(jī)房實(shí)驗(yàn)課管理系統(tǒng)的目的就是督促教師和學(xué)生在機(jī)房內(nèi)上課過程的互動(dòng)性,提高教授與學(xué)習(xí)的效率,將機(jī)房實(shí)驗(yàn)課變得更加標(biāo)準(zhǔn)化、規(guī)范化、有效化。
從實(shí)際環(huán)境應(yīng)用中的需求分析來看,機(jī)房實(shí)驗(yàn)課教學(xué)管理系統(tǒng)應(yīng)該具備以下功能。
1.設(shè)備監(jiān)控:對機(jī)房內(nèi)所有在用的設(shè)備進(jìn)行狀態(tài)監(jiān)控,如是否開機(jī)正常、系統(tǒng)配置情況、當(dāng)前界面情況、從事的歷史操作記錄等,可以實(shí)現(xiàn)遠(yuǎn)程設(shè)備的故障清除、遠(yuǎn)程重啟與關(guān)機(jī)、遠(yuǎn)程發(fā)送互動(dòng)信息和提示信息,遠(yuǎn)程截屏和信息診斷等設(shè)備管理等。
2.學(xué)生考勤:完成實(shí)驗(yàn)課學(xué)生的日??记冢瑢W(xué)生操作系統(tǒng)界面可以進(jìn)行遠(yuǎn)程查看、遠(yuǎn)程故障清除、遠(yuǎn)程重啟和關(guān)機(jī)、遠(yuǎn)程發(fā)送教學(xué)互動(dòng)信息,系統(tǒng)能夠生成考勤統(tǒng)計(jì)數(shù)據(jù),對從事無關(guān)操作的學(xué)生發(fā)送警告信息等,可以按照時(shí)間段生成考勤報(bào)告等。
3.教師教學(xué):中級管理員可以對上課教師的操作進(jìn)行管理與監(jiān)控,如發(fā)現(xiàn)與課堂無關(guān)的操作,可以遠(yuǎn)程提示、關(guān)閉甚至重啟與關(guān)閉其教師端機(jī)器等。
4.課堂管理:可以遠(yuǎn)程發(fā)送網(wǎng)絡(luò)資源與教學(xué)信息,如課堂任務(wù)、作業(yè)信息、問題答疑、文件發(fā)送與回收等,提高課堂教學(xué)的便攜與效率。
5.師生互動(dòng):在學(xué)生人數(shù)比較多的情況下,一節(jié)課下來,對每位同學(xué)的平均答疑時(shí)間是比較少的,很多重復(fù)性問題需要講解多遍,本模塊實(shí)現(xiàn)端對端和端對群的交互,可以實(shí)現(xiàn)一對一和一對多的互動(dòng)教學(xué)環(huán)節(jié),提高教學(xué)效率和答疑有效性。
6.教學(xué)評價(jià):學(xué)生可以對老師提出意見和建議,也可以對教師進(jìn)行教學(xué)評價(jià)等,對每節(jié)課的任務(wù)進(jìn)行適當(dāng)反饋,提高教師與教學(xué)的適應(yīng)性,也能提高實(shí)驗(yàn)課教學(xué)質(zhì)量。
MVC(Model-View-Controller)是數(shù)據(jù)模型、頁面視圖 與 服 務(wù) 控 制 端 的 略 寫[1-4],是 SSH (Structs+ Spring+ Hibernate)結(jié)構(gòu)的主要表現(xiàn)形式,體現(xiàn)了系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)與頁面分離實(shí)現(xiàn)的三層分層架構(gòu)模式[5-6],數(shù) 據(jù) 模 型 層Model主要實(shí)現(xiàn)每一個(gè)數(shù)據(jù)實(shí)體(數(shù)據(jù)表)的管理,包括數(shù)據(jù)表結(jié)構(gòu)的建立、 數(shù)據(jù)的讀取、 寫入、 修改等 JavaBean 操作,Model又可以分為兩級管理, 實(shí)體層和實(shí)體操作層,其中實(shí)體層就是數(shù)據(jù)表的類實(shí)現(xiàn),如用戶類UserData, 而實(shí)體操作層為對實(shí)體層數(shù)據(jù)表的操作,包括添加 AddBean、 刪除 DeleteBean 與修 改 ModifyBean等; 頁面視圖層 View 主要負(fù)責(zé)界面端的設(shè)計(jì)與實(shí)現(xiàn),包括系統(tǒng)前臺頁面和后臺管理頁面,主要通過調(diào)用實(shí)體層類完成對數(shù)據(jù)庫表的讀取與寫入等;控制層 Controller 主要由 Servlet完成對后臺數(shù)據(jù)的修改與寫入,以及業(yè) 務(wù)邏輯 的功 能實(shí)現(xiàn) 等[7]。
本系統(tǒng)包括多個(gè)實(shí)體,分為超級管理員端、中級管理員(機(jī)房)端、用戶端(教師端、學(xué)生端)。 其中超級管理員具有最高級權(quán)限,可以添加、刪除與修改中級管理員賬戶,中級管理員可以管理教師端和學(xué)生端應(yīng)用程序,可以添加、刪除與修改教師用戶與學(xué)生用戶。 教師端可以管理學(xué)生端,實(shí)現(xiàn)學(xué)生用戶的添加、刪除與修改等操作。 學(xué)生端主要完成用戶注冊、用戶登錄和用戶信息修改以及查看作業(yè)、修改作業(yè)、上傳作業(yè)、查看成績、提問題、參與討論、考勤等操作。
1.1 系統(tǒng)架構(gòu)圖
本教學(xué)系統(tǒng)采用通用的 C/S(Client/Server,客戶端/服務(wù)器端)架構(gòu)和 MVC 框架。 服務(wù)器采用 Tomcat6.0 進(jìn)行發(fā)布,所有數(shù)據(jù)庫安裝在服務(wù)器上;所有應(yīng)用程序分成 4 個(gè)級別,即超級管理員端、機(jī)房(中級)管理員端、教師管理員端和學(xué)生用戶端,其中超級管理員具有修改數(shù)據(jù)庫的最高權(quán)限,系統(tǒng)架構(gòu)如圖 1所示。
圖1 系統(tǒng)架構(gòu)圖
1.2 考勤算法
為了準(zhǔn)確地獲取學(xué)生實(shí)驗(yàn)課的真實(shí)出勤情況,需要設(shè)計(jì)合理的簽到事項(xiàng)去檢測用戶的實(shí)際機(jī)器運(yùn)行的狀況,避免出現(xiàn)一臺機(jī)器多個(gè)客戶端登陸多個(gè)賬戶的行為,考勤模塊設(shè)計(jì)遞進(jìn)式和智能的簽到算法,在 2 節(jié)課的實(shí)驗(yàn)課時(shí)間內(nèi),每隔一定時(shí)間就有一個(gè)簽到按鈕彈出,提示用戶點(diǎn)擊后完成一次簽到,每次課上有 6 輪簽到,每輪簽到只需要點(diǎn)中 1 次簽到按鈕即可,每輪簽到成功算 1 分,如果又一輪簽到?jīng)]有成功,則會(huì)在下一輪簽到中增加簽到次數(shù),直到完成簽到總數(shù)的三分之二,則表明本節(jié)課簽到成功,否則繼續(xù)增加簽到次數(shù)。
每輪都設(shè)定一個(gè)模式類型, 即初始化模式為“1”,簽到次數(shù)為模式類型數(shù)字的兩倍減一,即模式“1”需要簽到 1 次,模式“2”需要簽到 3 次,以此類推下去。 上一輪簽到成功則模式減 1,否則加 1。
最后6輪的總分值作為最后的考勤分?jǐn)?shù),利用分值在不同區(qū)間進(jìn)行相應(yīng)行為判斷,分別為簽到6分為“滿勤”,簽到 4 和 5 分為“正常出勤”,簽到 1-3 分為“非正常出勤”,簽到 0 分為“缺勤”,判斷算法如下:
1.3 視頻教學(xué)
教師端采用組播技術(shù)傳送圖像數(shù)據(jù),首先啟動(dòng)一個(gè)線程,對教師端屏幕進(jìn)行截屏,然后將截屏數(shù)據(jù)分包發(fā)送給所有學(xué)生端。學(xué)生端啟動(dòng)后先完成初始化,然后開啟相應(yīng)的監(jiān)聽線程,當(dāng)學(xué)生端接收到完成報(bào)文后,即開始組合成完整數(shù)據(jù),然后形成圖像全屏顯示在客戶端的屏幕上。 教師端可以開啟、中斷和重啟、關(guān)閉視頻教學(xué),當(dāng)教師端開啟和重啟視頻教學(xué)時(shí),學(xué)生端自動(dòng)打開視頻窗口,不能進(jìn)行其他造作,只能同步顯示教師端界面操作,主要代碼如下:
1.4 遠(yuǎn)程協(xié)助
本模塊采用 TCP 協(xié)議和多線程技術(shù), 獲取遠(yuǎn)程用戶端的桌面,并把本地的鼠標(biāo)和鍵盤事件發(fā)送到遠(yuǎn)程用戶的接收端上,當(dāng)遠(yuǎn)程協(xié)助用戶接收端獲取相應(yīng)事件后,即開始執(zhí)行對應(yīng)的事件觸發(fā)程序,從而實(shí)現(xiàn)對遠(yuǎn)程主機(jī)的桌面控制,核心代碼如下:
1.5 設(shè)備監(jiān)控
本模塊采用 Pink 技術(shù)的掃描技術(shù), 服務(wù)器端開啟一個(gè)定時(shí)器,設(shè)定一個(gè)間隔時(shí)間,每個(gè)相應(yīng)時(shí)間對機(jī)房內(nèi)所有設(shè)備列表的 IP 地址進(jìn)行 Pink 連接測試,根據(jù)返回的結(jié)果來判斷該設(shè)備的使用狀態(tài),在結(jié)果界面上顯示為相應(yīng)的“在線”和“不在線”狀態(tài),核心代碼如下:
1.6 屏幕監(jiān)控
本模塊采用 UDP 協(xié)議,首先廣播服務(wù)器監(jiān)控端的IP 地址到所有被監(jiān)控端,當(dāng)收到監(jiān)控指令后,客戶端進(jìn)行本地桌面的截屏,然后對所截屏圖像進(jìn)行壓縮,最后把壓縮圖像組播發(fā)送到服務(wù)器端,服務(wù)器端再進(jìn)行截屏圖像的再顯示。由于截屏圖像是壓縮和加密傳送的,所以在監(jiān)控端看到的圖像是模糊的,不會(huì)泄露被監(jiān)控端(如教師端、學(xué)生端等)的個(gè)人隱私,也起到了數(shù)據(jù)安全的目的,核心代碼如下:
1.7 數(shù)據(jù)庫連接池
系統(tǒng)后臺數(shù)據(jù)庫和數(shù)據(jù)庫服務(wù)程序安裝在服務(wù)器端,所有客戶端的請求發(fā)到到 Tomcat6.0 上運(yùn)行的 Servlet程序, 然后通過調(diào)用相應(yīng) JavaBean 文件的 DAO(Data Access Object,數(shù)據(jù)訪問對象)來進(jìn)行數(shù)據(jù)庫操作。
數(shù)據(jù)庫連接采用連接池獲取,客戶端數(shù)據(jù)使用完畢后,連接就可以放回連接池中了,為了避免請求書過多造成的數(shù)據(jù)庫連接數(shù)用盡,對于連接池中每一個(gè)連接 Connection 都是以建立多個(gè)回話 Statement來處理具體的數(shù)據(jù)庫,操作完成后即關(guān)閉 Statement。 連接可以循環(huán)使用。連接池會(huì)進(jìn)行不定時(shí)的刷新以清除壞連接和關(guān)閉空閑的連接,核心代碼如下:
2.1 數(shù)據(jù)庫連接池實(shí)現(xiàn)
服務(wù)器端采用 Tomcat6.0 部署,系統(tǒng)初始化時(shí)會(huì)自動(dòng)加載數(shù)據(jù)庫連接池。 所有客戶端的請求會(huì)以 Servlet的形式向服務(wù)器請求服務(wù), 客戶端進(jìn)行 HTTP 的 URL訪問,并通過對象流封裝網(wǎng)絡(luò)輸入輸出流,與服務(wù)器端進(jìn)行請求參數(shù)和服務(wù)結(jié)果的交互。
各功能的實(shí)現(xiàn)是通過響應(yīng) Servlet程序獲取參數(shù)對象,然后調(diào)用 DAO 的相關(guān)方法,進(jìn)行相關(guān)的數(shù)據(jù)庫操作。
2.2 管理員端實(shí)現(xiàn)
管理員端實(shí)現(xiàn)用戶管理、課程管理、設(shè)備管理、教師管理、網(wǎng)絡(luò)管理、機(jī)房日志管理等,中心界面顯示了全部的客戶端機(jī)器,可以查看每臺機(jī)器的狀態(tài)與界面等,如圖 2所示。
監(jiān)控程序 Ping 客戶端機(jī)器的 IP 地址,根據(jù)返回的TTL 值來判斷其在線狀態(tài)。
2.3 教師端實(shí)現(xiàn)
教師端具有學(xué)生用戶管理、作業(yè)發(fā)布、作業(yè)查看、作業(yè)評分、問題答疑、在線討論、查看學(xué)生屏幕、遠(yuǎn)程協(xié)助與信息發(fā)送等。
網(wǎng)絡(luò)流量監(jiān)控實(shí)現(xiàn)通過 Jacp 功能包獲取管理員端機(jī)器的網(wǎng)絡(luò)報(bào)文,進(jìn)行上傳和下載流量的統(tǒng)計(jì)并以JFreeChart的 TimeSeries 形式實(shí)時(shí)刷新顯示。
圖2 管理員端監(jiān)控界面
教師端和學(xué)生端的群聊功能是利用組播技術(shù)實(shí)現(xiàn)的,同一機(jī)房的所有機(jī)器可以加入同一個(gè)組播組,組播服務(wù)端口號由機(jī)房 ID 來動(dòng)態(tài)生成,避免了同一網(wǎng)段內(nèi)不同機(jī)房可能存在的課程沖突等現(xiàn)象。
2.4 學(xué)生端實(shí)現(xiàn)
學(xué)生端具有考勤、問題提問、討論、評教、觀看視頻等功能,可以查看教師發(fā)布的作業(yè),可以提交與修改作業(yè)等。
學(xué)生端考勤分為本次簽到和以往歷史簽到兩種形式,以往歷史簽到以一段時(shí)間內(nèi)的統(tǒng)計(jì)曲線方式顯示出來,可以用來提醒學(xué)生關(guān)注自己的歷史考勤情況。
學(xué)生端可以利用 TCP 協(xié)議向教師端發(fā)送遠(yuǎn)程協(xié)助請求。當(dāng)教師端對學(xué)生機(jī)器進(jìn)行遠(yuǎn)程協(xié)助時(shí),先是通過TCP 協(xié)議獲取學(xué)生的本地系統(tǒng)桌面, 然后通過發(fā)送教師端的鼠標(biāo)與鍵盤事件到相應(yīng)的學(xué)生端機(jī)器上,教師端就可以進(jìn)行學(xué)生遠(yuǎn)程桌面的控制了。
系統(tǒng)采用 MVC 分層模式和 C/S 架構(gòu)完成超級管理員端、中級管理遠(yuǎn)端、教師端和學(xué)生端以及服務(wù)程序的5級模塊實(shí)現(xiàn),超級管理員端和中級管理遠(yuǎn)端以及服務(wù)程序可以分別部署在不同服務(wù)器上,服務(wù)器采用連接池的數(shù)據(jù)庫技術(shù),可以解決上萬個(gè)客戶端并發(fā)訪問的連接數(shù)過多的問題,教師端與學(xué)生可以部署在每一個(gè)機(jī)房中,實(shí)現(xiàn)每個(gè)機(jī)房之間操作的獨(dú)立性,上課信息包括上課教師姓名與工號、學(xué)生姓名與學(xué)號等由機(jī)房管理員事先導(dǎo)入到服務(wù)器數(shù)據(jù)庫中。
每節(jié)課根據(jù)設(shè)定好的上課時(shí)間段,機(jī)房(中級)管理員可以啟動(dòng)教師端和學(xué)生端,上課教師利用工號登陸計(jì)算機(jī)系統(tǒng)后,即可進(jìn)行作業(yè)發(fā)布、學(xué)生管理和設(shè)備監(jiān)控等;學(xué)生利用學(xué)號在任一臺機(jī)器上登陸后,即可進(jìn)入學(xué)生端,進(jìn)行上課模式,具有考勤、提問、討論、觀看視頻和遠(yuǎn)程協(xié)助等功能。
[1]劉 紅 霞 ,陸文迪.改 進(jìn)的 MVC 設(shè) 計(jì) 模 式 的 研 究 與 應(yīng) 用[J].計(jì)算機(jī)工程與科學(xué),2015,37(19):1688-1691.
[2]梁弼,劉篤 晉.基 于分層模型 的古建筑 文 物 展 示 平 臺 研 究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(4):127-131.
[3]車遙宇.基于 MVC 設(shè)計(jì)模式的教學(xué)質(zhì)量評價(jià)方法研究與應(yīng)用[D].哈爾濱:哈爾濱工程大學(xué),2015.
[4]徐 金 虎 , 宋 斌 , 丁 銳 .Spring MVC+Hibernate+jQeury 模 式 開發(fā)框架應(yīng)用研究[J].自動(dòng)化技術(shù)與應(yīng)用,2015,34(3):42-46.
[5]楊帆,沈來信.基于 SS2H 的微信公 眾 平 臺 賬 號 設(shè) 計(jì)[J].計(jì) 算機(jī)技術(shù)與發(fā)展,2016,26(1):195-199.
[6]趙志成.基于 J2EE 協(xié)同辦公管理系統(tǒng)的設(shè)計(jì)與 實(shí)現(xiàn)[J].哈 爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2015,31(1):85-87.
[7]王延翔,楊金民.基于分層分類的 J2EE 應(yīng)用系統(tǒng)異常處理方法[J].計(jì)算機(jī)應(yīng)用研究,2015,32(3):776-780.
責(zé)任編輯:胡德明
The Design of a Teaching System for Computer-rooms Based on MVC Model
Shen Laixin,Yang Fan,Wu Xiaopan
(School of Information Engineering,Huangshan University,Huangshan 245041,China)
An experimental teaching and management system for computer-rooms is developed using Java language and MySQL database through MVC frame and other key technologies such as JavaBean, Servlet,TCP,UDP and multicast.The system's super administrator client is installed in the central server. The intermediate administrator client,teacher client and student client are installed in the administrator's machine,the teacher's machine and the students'machines respectively.The e-system has such functions as checking-in,equipment monitoring,video teaching,remote assisting and screen monitoring as well as group chatting and individual chatting based on local networks.The e-system can improve students'attendance rate and contribute to teachers'more effective teaching and management.The using status and accidental damage of the equipment can also be found timely through real-time monitoring.
MVC;Servlet;multicast;computer-room e-system;checking-in
TM764
:A
:1672-447X(2017)03-0032-04
2016-10-15
安徽省教育廳大學(xué)生創(chuàng)新實(shí)驗(yàn)室建設(shè)計(jì)劃項(xiàng)目(2015ckjh089);黃山學(xué)院教學(xué)研究項(xiàng)目(2016JXYJ02);安徽省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201610375042;201510375002)
沈來信(1979-),安徽懷遠(yuǎn)人,博士,黃山學(xué)院信息工程學(xué)院副教授,研究方向?yàn)樵朴?jì)算與大數(shù)據(jù)。