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