陳貴云 陳超云 張文
【摘 要】 文章以高校資源合理配置為出發(fā)點(diǎn),著力解決建設(shè)經(jīng)費(fèi)在高校資產(chǎn)更換過(guò)程中的覆蓋面及其利用率問(wèn)題,提出利用高校資產(chǎn)信息采集系統(tǒng)的動(dòng)態(tài)統(tǒng)計(jì)數(shù)據(jù)來(lái)指導(dǎo)投資行為,并以直觀、可視化的圖形或圖像呈現(xiàn)給投資者解決方案。結(jié)合網(wǎng)絡(luò)技術(shù)以及物聯(lián)網(wǎng)技術(shù)解決信息采集的可靠性、并發(fā)性、沖突性,以及性能等相關(guān)問(wèn)題,將是今后資產(chǎn)管理系統(tǒng)一個(gè)重要的發(fā)展方向。
【關(guān)鍵詞】 高校資產(chǎn); 信息采集; 投資優(yōu)化; J2EE; 沖突
一、引言
高校資產(chǎn)已經(jīng)成為一所高??蒲兴健F(xiàn)代化建設(shè),以及創(chuàng)新性建設(shè)的重要標(biāo)志。在資金有限、設(shè)備更新較快較多的情況下,高校會(huì)出現(xiàn)資金數(shù)額無(wú)法滿足實(shí)驗(yàn)室建設(shè)需求的情況,因此合理地投放資金成為了高校資產(chǎn)管理最為核心的問(wèn)題。那么,什么是建設(shè)的重要依據(jù)呢?實(shí)驗(yàn)設(shè)備信息采集系統(tǒng)就是建設(shè)的重要依據(jù)。通過(guò)系統(tǒng)采集到的設(shè)備使用率這個(gè)有效指標(biāo),除了能夠解決實(shí)驗(yàn)室建設(shè)、設(shè)備投資優(yōu)化等問(wèn)題外,還可以作為實(shí)驗(yàn)室兼并重組的重要依據(jù)。所以實(shí)驗(yàn)設(shè)備的使用情況作為一種有效的信息,在實(shí)驗(yàn)室建設(shè)優(yōu)化等方面具有重要意義,同時(shí),對(duì)于設(shè)備信息的采集也是一個(gè)實(shí)驗(yàn)室管理者值得研究的問(wèn)題。
為了實(shí)現(xiàn)信息的采集,以及將采集來(lái)的信息以可視化的圖形圖像界面展現(xiàn)給用戶,本文所討論的系統(tǒng)基于B/S和C/S兩種模式,在采集端以基于PC或其他智能終端C/S的架構(gòu)實(shí)現(xiàn)信息的采集,在信息匯總端采用B/S模式架構(gòu),將設(shè)備的使用信息以Web瀏覽方式顯示給用戶。
二、系統(tǒng)總體設(shè)計(jì)
(一)系統(tǒng)總體結(jié)構(gòu)
整個(gè)系統(tǒng)包含三個(gè)服務(wù)器,分別是應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、Web服務(wù)器(圖1所示)。
1.應(yīng)用服務(wù)器
基于C/S模式架構(gòu),與前端的客戶機(jī)協(xié)同工作。負(fù)責(zé)監(jiān)聽(tīng)客戶機(jī)發(fā)出的消息,將客戶機(jī)采集到的信息通過(guò)數(shù)據(jù)庫(kù)服務(wù)器寫入數(shù)據(jù)庫(kù)中。該子系統(tǒng)為整個(gè)系統(tǒng)的核心模塊,負(fù)責(zé)信息的采集工作。該子系統(tǒng)在設(shè)計(jì)時(shí)必須充分考慮到影響采集質(zhì)量的因素,如并發(fā)性訪問(wèn)、海量數(shù)據(jù)、消息傳遞機(jī)制等。
2.數(shù)據(jù)庫(kù)服務(wù)器
連接該系統(tǒng)唯一的數(shù)據(jù)庫(kù),用于和數(shù)據(jù)庫(kù)之間的交互,任何訪問(wèn)數(shù)據(jù)庫(kù)的操作必須經(jīng)過(guò)該服務(wù)器,此外該服務(wù)器還具有訪問(wèn)合法性檢查、數(shù)據(jù)定期備份等功能。
3.Web服務(wù)器
為用戶提供與信息查詢相關(guān)的Web服務(wù),該子系統(tǒng)是典型的基于B\S模式架構(gòu)的,以J2EE框架實(shí)現(xiàn),并采用MVC經(jīng)典模型,整合了當(dāng)前流行框架Struts+Hibernate+Spring(SSH),在數(shù)據(jù)的持久化、信息查詢的高效性等方面作了相關(guān)優(yōu)化處理。
(二)數(shù)據(jù)庫(kù)設(shè)計(jì)方案
注:為了降低問(wèn)題的復(fù)雜性,本文討論的實(shí)驗(yàn)設(shè)備暫為微型計(jì)算機(jī)。因?yàn)槿魏卧O(shè)備若要對(duì)其進(jìn)行智能化監(jiān)控必須綁定一個(gè)智能終端,如:PDA,PPC,MT等。
數(shù)據(jù)庫(kù)作為該系統(tǒng)的核心,所有的記錄信息都保存在數(shù)據(jù)倉(cāng)庫(kù)中。此外,數(shù)據(jù)模型設(shè)計(jì)的好壞很大程度上影響著系統(tǒng)的執(zhí)行效率。
通過(guò)需求分析可知(圖2所示),該系統(tǒng)涉及到實(shí)驗(yàn)室、PC終端、學(xué)生、班級(jí)、課程、教師、記錄(學(xué)生記錄和教師記錄)八類對(duì)象,映射到數(shù)據(jù)庫(kù)中為相應(yīng)的八張核心表。在所有表中最重要的是學(xué)生記錄表,因?yàn)樵撚涗浭菍W(xué)生使用微機(jī)的重要憑證,其中的記錄需保存學(xué)生一次上機(jī)的起始時(shí)間。微機(jī)的使用率、學(xué)生的到課率等相關(guān)信息都依據(jù)該記錄。為了提高系統(tǒng)性能,對(duì)學(xué)生記錄表不設(shè)置任何外鍵,只通過(guò)學(xué)生的學(xué)號(hào)和微機(jī)的物理地址(MAC地址)關(guān)聯(lián)。
三、優(yōu)化措施
(一)沖突優(yōu)化
由于此系統(tǒng)的工作環(huán)境屬于高并發(fā)性環(huán)境,最壞的情況為所有機(jī)房的所有微機(jī)都在同一時(shí)刻與信息采集服務(wù)器通信,當(dāng)然服務(wù)器同一時(shí)刻不可能同時(shí)處理這些通信請(qǐng)求,于是便產(chǎn)生了沖突。雖然,數(shù)據(jù)庫(kù)連接池模型可以有效地提高工作效率,使CPU能夠充分利用有限的時(shí)間片,在盡量短的時(shí)間內(nèi)處理盡量多的請(qǐng)求,但是仍舊無(wú)法完全避免同一時(shí)刻的通信請(qǐng)求。
退避算法的提出能夠有效解決這種沖突問(wèn)題(圖3所示)。每當(dāng)客戶機(jī)向服務(wù)器發(fā)出通信請(qǐng)求時(shí),都會(huì)啟動(dòng)一個(gè)計(jì)時(shí)線程記錄客戶機(jī)的等待時(shí)間和沖突的次數(shù),如果客戶機(jī)發(fā)出請(qǐng)求后服務(wù)器超過(guò)5秒應(yīng)答認(rèn)為請(qǐng)求超時(shí),沖突次數(shù)(n)加一,之后等待2n秒后再加上2n乘以一個(gè)0到1的隨機(jī)數(shù),最后取整得到延遲時(shí)間S,等待S秒后再重新發(fā)送通信請(qǐng)求,當(dāng)沖突次數(shù)達(dá)到8后認(rèn)為與服務(wù)器失去連接,并將相關(guān)消息返回到客戶端。
經(jīng)實(shí)際測(cè)試,在100臺(tái)機(jī)器的測(cè)試環(huán)境下,當(dāng)設(shè)定等待時(shí)間為5秒,最大沖突次數(shù)為8時(shí),在1小時(shí)內(nèi)通過(guò)退避算法有效避免沖突671次,且沖突數(shù)最高為3,即在100個(gè)隨機(jī)并發(fā)環(huán)境下單機(jī)持續(xù)沖突的次數(shù)不超過(guò)3。等待時(shí)間(T)=2n+2n×Random(秒)。
(二)線程池并發(fā)性處理
由于服務(wù)器在接收到客戶機(jī)消息的同時(shí)還會(huì)進(jìn)行數(shù)據(jù)庫(kù)操作,因而使用線程池模型(圖4所示)能夠顯著提高服務(wù)器的效率。當(dāng)服務(wù)器接收到客戶端的消息后,根據(jù)消息的內(nèi)容創(chuàng)建一個(gè)任務(wù)模型(TaskModel)用來(lái)處理相關(guān)業(yè)務(wù),然后把任務(wù)傳遞給線程池處理,當(dāng)線程池中的活動(dòng)線程達(dá)到最大時(shí)任務(wù)進(jìn)入等待隊(duì)列等候處理,否則從線程池中取出一個(gè)就緒線程處理該任務(wù)。
該線程池模型同時(shí)設(shè)置了線程池活動(dòng)線程數(shù)量(corePoolSize)、最大線程數(shù)量(maximumPoolSisze)、等待隊(duì)列的最大長(zhǎng)度(workQueueSize)、當(dāng)?shù)却?duì)列達(dá)隊(duì)滿時(shí)對(duì)新到線程采取的策略(policy)、線程池的最長(zhǎng)保持時(shí)間(keepAliveTime)參數(shù)。
四、信息采集解決方案
(一)學(xué)生端信息采集
當(dāng)學(xué)生上機(jī)登錄系統(tǒng)時(shí)(圖5所示),系統(tǒng)向服務(wù)器發(fā)送登錄信息,經(jīng)過(guò)驗(yàn)證后在數(shù)據(jù)庫(kù)中寫入相關(guān)條目并向客戶端返回該條目在數(shù)據(jù)庫(kù)中的唯一標(biāo)識(shí)rid,之后只要該學(xué)生沒(méi)有退出客戶端,客戶端便每隔一段時(shí)間向服務(wù)器發(fā)送更新信息,服務(wù)器便根據(jù)此rid更新該條目的最后時(shí)間為當(dāng)前時(shí)間。該學(xué)生此次登錄的總時(shí)間為最后時(shí)間—登錄時(shí)間。
(二)教師端信息采集
當(dāng)教師登錄客戶端時(shí)(圖6所示),經(jīng)過(guò)服務(wù)器驗(yàn)證信息,若驗(yàn)證通過(guò)則返回該教師的班級(jí)和課程給客戶端,客戶端收到后供教師選擇,當(dāng)教師正確選擇后向服務(wù)器發(fā)送選擇信息,服務(wù)器便將此信息記錄到數(shù)據(jù)庫(kù)當(dāng)中。教師此條登錄信息具有重要意義,服務(wù)器根據(jù)該記錄通過(guò)時(shí)間和班級(jí)兩個(gè)字段就可以關(guān)聯(lián)到該機(jī)房當(dāng)前正在上該老師課的所有學(xué)生。
五、結(jié)論
(一)B/S信息查詢框架
由于該系統(tǒng)涉及到的業(yè)務(wù)邏輯較為復(fù)雜,同時(shí)為了確保數(shù)據(jù)的一致性和準(zhǔn)確性,該系統(tǒng)采用三層結(jié)構(gòu),即表現(xiàn)層、業(yè)務(wù)層,持久層(圖7所示)。用戶通過(guò)瀏覽器將請(qǐng)求發(fā)送給表現(xiàn)層,表現(xiàn)層根據(jù)請(qǐng)求的業(yè)務(wù),將請(qǐng)求傳遞給相關(guān)的業(yè)務(wù)層,業(yè)務(wù)層完成相關(guān)的業(yè)務(wù)邏輯并通過(guò)持久層來(lái)進(jìn)行數(shù)據(jù)持久化操作。
該Web系統(tǒng)基于Tomcat/JBoss服務(wù)器,采用JSP、J2EE技術(shù),整合了SSH框架。系統(tǒng)表現(xiàn)層基于Struts框架開(kāi)發(fā),業(yè)務(wù)邏輯層采用Spring面向切面技術(shù),極大降低了模塊之間的耦合,在持久層中應(yīng)用Hibernate框架,實(shí)現(xiàn)數(shù)據(jù)的增刪改查。系統(tǒng)在內(nèi)部運(yùn)用各種技術(shù)提高系統(tǒng)的性能,保證查詢框架的正常運(yùn)行,而系統(tǒng)外部借助美工技術(shù),將界面設(shè)計(jì)得簡(jiǎn)潔大方,盡可能降低用戶使用系統(tǒng)的復(fù)雜度。
(二)B\S信息查詢框架
該系統(tǒng)在C/S端設(shè)計(jì)時(shí)充分考慮服務(wù)器的處理能力和通信能力,應(yīng)用多種技術(shù)進(jìn)行改進(jìn)(表1所示)。如處理通信沖突時(shí)通過(guò)結(jié)合退避算法有效地避免了并發(fā)性沖突;在處理服務(wù)器處理能力上,為了服務(wù)器能夠在有限的時(shí)間片內(nèi)處理更多的數(shù)據(jù)并減少CPU等待時(shí)間,引入線程池模型;通過(guò)把每個(gè)獨(dú)立的任務(wù)制作成一個(gè)單獨(dú)的線程交給線程池去處理,從而提高了服務(wù)器的處理性能。此外,在其他優(yōu)化服務(wù)器性能的措施上還采用了自定義消息處理框架、Java反射機(jī)制、哈希映射集等技術(shù)。在真實(shí)測(cè)試環(huán)境下系統(tǒng)運(yùn)行正常,隨著終端數(shù)量的增加沖突也在增加,但是通過(guò)前述的一系列優(yōu)化措施,有效地提高了數(shù)據(jù)的可靠性和準(zhǔn)確性。
【參考文獻(xiàn)】
[1] 刁叔鈞.基于資源共享的高校實(shí)驗(yàn)儀器設(shè)備網(wǎng)絡(luò)化管理初探[J].實(shí)驗(yàn)室研究與探索,2010,29(8):154-156.
[2] 陳六平.關(guān)于當(dāng)前實(shí)驗(yàn)室管理及實(shí)驗(yàn)教學(xué)中若干問(wèn)題[J].實(shí)驗(yàn)室研究與探索,2009,28(1):152-156.
[3] Stephen Asbary. Developing Java Enterprise Applications[M].王強(qiáng),譯.北京:機(jī)械工業(yè)出版社,2004.
[4] David Flanagan.Thinking in Java[M].Third Edition by Bruce Eckel,2003.
[5] 鄺孔武,王曉敏.信息系統(tǒng)分析與設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.
[6] 中國(guó)就業(yè)培訓(xùn)技術(shù)指導(dǎo)中心.信息采集實(shí)用技術(shù)[M]. 北京:中國(guó)勞動(dòng)社會(huì)保障出版社,2008.
[7] Henry F.Korth S.Sudarshan. Database System Concepts[M].楊冬青,譯.北京:機(jī)械工業(yè)出版社,2006.
[8] Sam Lightstone. Physical Database Design[M].北京:清華大學(xué)出版社,2010.
[9] David M.Kroenke. Database Concepts[M].姜玲玲,馮飛,譯.北京:清華大學(xué)出版社,2008.
[10] 林鎮(zhèn)燦.Web信息采集和統(tǒng)計(jì)技術(shù)的研究與實(shí)現(xiàn)[D].華南理工大學(xué)碩士學(xué)位論文,2010.
[11] 方麗英,閆健卓,王普,劉宇輝.面向數(shù)據(jù)集成的基于規(guī)則的自動(dòng)語(yǔ)義轉(zhuǎn)換[J].北京工業(yè)大學(xué)學(xué)報(bào),2008(3):15-18.