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