摘 要:實(shí)驗(yàn)室是培養(yǎng)學(xué)生創(chuàng)新能力,提高實(shí)踐能力的重要場(chǎng)所。高校要利用信息技術(shù)和計(jì)算機(jī)技術(shù)對(duì)實(shí)驗(yàn)室進(jìn)行開放式管理,實(shí)現(xiàn)實(shí)驗(yàn)室的全方位開放,有利于提高實(shí)驗(yàn)室的管理水平,提高使用率;增強(qiáng)學(xué)生參與度與用戶體驗(yàn)。
關(guān)鍵詞:開放式實(shí)驗(yàn)室 模塊 Struts Hibernate Ajax Spring
中圖分類號(hào):G647 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)05(a)-0010-02
實(shí)驗(yàn)教學(xué)和實(shí)驗(yàn)室管理是一項(xiàng)多因素綜合的系統(tǒng)工程,其理論研究、技術(shù)進(jìn)步、硬件發(fā)展、實(shí)踐應(yīng)用結(jié)合緊密。在計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)與信息技術(shù)不斷發(fā)展與普及的今天,高校的實(shí)驗(yàn)教學(xué)與管理應(yīng)當(dāng)融合這些先進(jìn)技術(shù)和手段,從教學(xué)內(nèi)容、形式和手段上推陳出新,從管理模式上尋求新的方式。通過設(shè)計(jì)開發(fā),本系統(tǒng)可以為學(xué)生提供一個(gè)網(wǎng)上平臺(tái),學(xué)生只要在任何一臺(tái)上網(wǎng)的計(jì)算機(jī),并通過用戶驗(yàn)證登錄后,就可以瀏覽所要了解的實(shí)驗(yàn)信息,除了可以對(duì)本專業(yè)的實(shí)驗(yàn)進(jìn)行預(yù)約之外,還可以通過系統(tǒng)提供的查詢功能找到自己感興趣的實(shí)驗(yàn)進(jìn)行預(yù)約、查詢等,促進(jìn)學(xué)生學(xué)習(xí)的積極性。本系統(tǒng)為教師提供在線查看學(xué)生的實(shí)驗(yàn)報(bào)告、批改實(shí)驗(yàn)報(bào)告等。系統(tǒng)的管理員要對(duì)實(shí)驗(yàn)室信息,實(shí)驗(yàn)信息,學(xué)生信息,老師信息進(jìn)行管理。系統(tǒng)超級(jí)管理員可在線進(jìn)行系統(tǒng)信息更新和維護(hù)。開放式實(shí)驗(yàn)室管理系統(tǒng)把教師從繁重的實(shí)驗(yàn)管理工作中解脫出來,投入到實(shí)驗(yàn)教學(xué)方法和內(nèi)容的研究上來,從而提高實(shí)驗(yàn)管理水平。
1 系統(tǒng)功能模塊分析與設(shè)計(jì)
經(jīng)過參考各大高校現(xiàn)有的開放式實(shí)驗(yàn)室管理系統(tǒng)及參考本校實(shí)際,本系統(tǒng)主要包含如下模塊:學(xué)生模塊;老師模塊;系統(tǒng)管理員模塊;系統(tǒng)超級(jí)管理員模塊。
1.1 學(xué)生模塊
學(xué)生模塊主要有如下功能:修改個(gè)人信息;查看實(shí)驗(yàn)信息;預(yù)約實(shí)驗(yàn);取消預(yù)約;查看預(yù)約信息;提交實(shí)驗(yàn)報(bào)告;查看實(shí)驗(yàn)結(jié)果。
1.2 老師模塊
老師模塊的主要功能包括:修改個(gè)人資料;批改實(shí)驗(yàn)報(bào)告。
1.3 管理員模塊
管理員模塊的主要功能有:管理實(shí)驗(yàn)室信息;管理實(shí)驗(yàn)信息;管理學(xué)生信息;管理老師信息;添加實(shí)驗(yàn)室信息;添加實(shí)驗(yàn)信息;添加老師信息;修改個(gè)人資料。
1.4 超級(jí)管理員模塊
超級(jí)管理員模塊的主要功能有:管理系統(tǒng)功能,添加系統(tǒng)功能,管理用戶權(quán)限,添加管理員,管理管理員,修改個(gè)人資料。
2 系統(tǒng)設(shè)計(jì)與分析
2.1 系統(tǒng)框架說明
本系統(tǒng)是采用Struts+Spring+Hibernate架構(gòu)的基于B/S模式的應(yīng)用程序。Struts提供了一個(gè)基于MVC的開發(fā)模式,Spring為程序注入運(yùn)行時(shí)需要的JavaBean,Hibernate實(shí)現(xiàn)持久層的O/R映射。JavaScript+Jsp等腳步語言實(shí)現(xiàn)頁面顯示。使用Ajax對(duì)頁面進(jìn)行局部更新。
2.2 總體架構(gòu)設(shè)計(jì)
一般出于對(duì)系統(tǒng)的解藕,都把PO(PO是由Hibernate納入其實(shí)體容器(Entity Map)的對(duì)象,它代表了與數(shù)據(jù)庫(kù)中某條記錄對(duì)應(yīng)的Hibernate實(shí)體,PO的變化在事務(wù)提交時(shí)將反應(yīng)到實(shí)際數(shù)據(jù)庫(kù)中)組件轉(zhuǎn)換成VO(獨(dú)立的Java Object)組件,Jsp頁面直接使用VO,而非PO。但站在本系統(tǒng)角度,本人認(rèn)為本系統(tǒng)的頁面顯示邏輯不需要涉及多個(gè)PO組件,功能簡(jiǎn)單,所以無須將PO組件轉(zhuǎn)換成VO組件,這樣反而可以提高性能,從代碼量來說,也可以減少錯(cuò)誤、減低bug的風(fēng)險(xiǎn)。
2.3 系統(tǒng)架構(gòu)分析
(1)使用HibernateDao Support支持Hibernate的DAO對(duì)象實(shí)現(xiàn),使用Hibernate為O/R Mapping框架,更加符合面向?qū)ο蟪绦蛟O(shè)計(jì)思路。使用Hibernate對(duì)數(shù)據(jù)的增刪查改時(shí)候非常方便,但對(duì)于復(fù)雜的查詢,Hibernate使用起來很繁瑣,沒有JDBC那樣方便,所以系統(tǒng)開發(fā)時(shí),對(duì)于數(shù)據(jù)的統(tǒng)計(jì)還是采用JDBC完成相應(yīng)得功能。
(2)使用Struts作為MVC框架C&M層,Jsp作為表示層,Struts就是對(duì)Servlet進(jìn)行了封裝,使用Struts就是用為了引進(jìn)MVC模型,在開發(fā)中進(jìn)行分層實(shí)現(xiàn)。
(3)Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的依賴注入(IoC)和面向切面(AOP)的容器框架。本所謂的依賴注入就是通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)-的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反—— 不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。項(xiàng)目主要使用到了Spring提供的依賴注入技術(shù)。
3 結(jié)語
本系統(tǒng)采用現(xiàn)時(shí)流行的Spring+Hiber nate+Struts構(gòu)架,大大的降低了模塊與模塊之間的耦合度,符合軟件開發(fā)的高內(nèi)聚與低耦合的要求,提高了代碼的可重用性與系統(tǒng)的可擴(kuò)展性。采用純面向?qū)ο髞黹_發(fā)這個(gè)開放式實(shí)驗(yàn)室管理系統(tǒng),在開發(fā)中采用面向接口編程;當(dāng)客戶端發(fā)送請(qǐng)求到服務(wù)器端時(shí),為了服務(wù)器端對(duì)數(shù)據(jù)庫(kù)的安全性操作,引入了Model層,讓Model調(diào)用DAO的操作,避免對(duì)數(shù)據(jù)直接操作暴露出去,也降低了模塊與模塊之間的耦合度。
參考文獻(xiàn)
[1]郭志軍.高校實(shí)驗(yàn)室開放式教學(xué)與管理探討[J].中國(guó)科技信息,2006.
[2]劉鳴,畢玉玲,趙美蓉,等.實(shí)行開放實(shí)驗(yàn)教學(xué)模式培養(yǎng)學(xué)生創(chuàng)新探索精神[J].實(shí)驗(yàn)技術(shù)與管理,2004.
[3]Hibernate Reference Documentation Version3.0 beta4.
[4]Servlet與Jsp核心技術(shù)編程[M].2版.Marty Hall,Larry Brown,著.清華大學(xué)出版社.
[5]設(shè)計(jì)模式Java手冊(cè)[M].Steven John Metsker,著,機(jī)械工業(yè)出版社.
[6]JavaScript高級(jí)程序設(shè)計(jì)[M].Nicholasc C.Zakas,著.人民郵電出版社.