趙慶明+阮菊紅
摘 要:系統整合往往是一個復雜的工程,第三方接口對系統的影響與其穩定性和實時性成為一種重要考慮的環節。本文通過簡單編程來監控特定服務器的運行日志,從而解決了我校“一卡通”與我圖書館集成管理系統之間的“實時”數據交互問題。經過半年多時間的運行,效果理想,可為有類似需求的同仁參考。
關鍵詞:C#;一卡通;監視;圖書館集成管理系統;FileSystemWatcher
一、引言
作為數字化校園的基礎設施,“一卡通”系統幾乎普及于國內各大高校。我校“一卡通”系統經過數次升級,逐步完善。雖然服務提供商在“一卡通”系統和圖書館集成化管理系統做了不少的整合工作,從而確保了其可用性。但在實際使用中,我們發現整合的“實時性”仍有欠缺。因此基于我館和我校目前狀況,經過一系列的探究,最后通過簡單的編程,彌補了此欠缺。
二、目前現狀
我館于2001年開始采用金盤圖書館集成管理系統,經過數次版本升級,目前是一個封閉的、獨立的、完善而穩定的系統。在學校“一卡通”系統基礎設施完成后,對圖書館原有集成管理系統帶來了不少的挑戰,數據如何交互是我們面對的重要問題。數據商只提供了通用的解決方案,保證了其可用性。
通用解決方案為,“一卡通”數據庫定時將數據推送到公網的“中間數據”服務器。我館內部的“同步服務器”定時從公網的“中間數據”服務器上取回數據,然后在“金盤數據庫”中完成檢驗和修改。每一次操作,將有數萬條數據需要被對比驗證,對“金盤數據庫”服務器帶來很大的壓力,同時也會影響到圖書館的業務。考慮到性能問題,數據商建議從“中間數據”服務器到“金盤數據庫”服務器的同步,設置在業務不繁忙的時間段進行處理,每日分兩次處理。而“一卡通”數據為時刻變動的數據,尤其在學生補辦卡之后,會出現新補辦的卡無法在圖書館使用,而已丟失的卡可能會被他人冒用的情況。而其原因是“一卡通”數據暫時未同步到圖書館業務系統的數據庫。
三、可行性分析
我館采用“通道閘機”對來館的讀者進行驗證,決定是否放行。閘機由一臺Windows Server作為閘機服務器來控制,每個讀者需要在閘機上刷“卡”,驗證通過之后,才予放行。閘機服務器讀取“卡”中的數據后,讀寫“金盤數據庫”以確定讀者的合法性,并將日志作為“登到日志”回寫至金盤數據庫,同時也將其記錄在一個文本的日志文件中。
從統計的數據中發現,每日到圖書館的人數僅有2000人次左右,如果只針對這些讀者進行操作,不但可以做到實時交互,而且也不會對“金盤服務器”帶來太多影響。為了確保數據的安全性和健壯性,在中間數據服務器上配置Web以提供WebAPI服務。
四、實時交互實施
在C#編程語言中,命名空間“System.IO”中的“FileSystemWatcher”擁有實時監控Windows文件狀態的功能。由于每次讀者在閘機上刷卡,閘機服務器上的日志都會添加記錄。因此監控該日志文件,適當處理,即可滿足“一卡通”數據和“金盤數據庫”的實時性交互問題。核心代碼如下:
FileSystemWatcher watcher=new FileSystemWatcher( );
watcher.Path=path;
watcher.Filter=filter;
watcher.Changed+=new FileSystemEventHandler(OnProcess);
watcher.EnableRaisingEvents=true;
watcher.IncludeSubdirectories=true;
當監控的文件發生變化后,由OnProcess完成后續的處理:找到剛才被寫入的那條日志文件,找到剛被添加的日志內容,提取刷卡的卡號,訪問“中間數據”的WebAPI,獲取該讀者最新的“一卡通”數據,再從“金盤數據庫”中讀出該讀者信息,對比兩者,寫會修改后的數據。
五、結束語
通過如上設計,完成了一個小程序以滿足我校“一卡通”與圖書館集成管理系統之間的整合。讀者的卡發生變化后,只要到圖書館在閘機上刷卡,該小程序自動完兩個系統之間的數據“實時”交互。新補卡馬上可以使用,同時也避免了舊卡冒用的問題。經過半年多時間的運行,效果理想,可為有類似需求的同仁參考。
參考文獻:
[1]基于FileSystemWatcher的文件備份系統設計[J].唐祖權,屈敏申,徐志京.電子設計工程.2010(03).
[2]基于.NET的文件系統監控[J].陳健.吉林師范大學學報(自然科學版).2007(02).
[3]FileSystemWatcher用法詳解[EB/OL].http://blog.csdn.net/hwt0101/article/details/8469285,2013.1.5.
作者簡介:趙慶明,男,館員,主要研究方向:圖書館學與計算機應用方面的工作;
阮菊紅,女,館員,主要研究方向:圖書館學研究及工作。
基金項目:2017年度四川省哲學社會科學重點研究基地一般項目《“雙一流”建設背景下圖書館智庫服務研究》(SCAA17-004)。endprint