(成都理工大學圖書館 四川 成都 610059)
伴隨著RFID技術在圖書館的引入,圖書館智能化得到了進一步的提升。崗位逐步被智能化設備所替代,服務效率卻不斷提高。圖書館工作人員從原來重復而單調的體力工作者逐漸轉換成更富有生產力的知識工作者。但這些智能化設備偶發故障,卻會為圖書館帶來不少的麻煩。因此,如何確保其正常運作,對圖書館提出了更高的要求。
成都理工大學圖書館,從開始嘗試RFID,三年時間后就全面采用RFID。由于RFID在智能化上擁有的絕對優勢,讓我館在讀者服務和圖書館創新方面走到我國高校圖書館行業的前列。RFID技術引入,圖書館工作人員大幅縮減,同時在館舍面積擴大和讀者的數量的增加的情況下,我館提供的服務質量和服務水平有增無減。圖書借還這個作為圖書館最主要的工作之一,已全面由RFID自助借還設備替代。
圖書館為重點防火單位。因此在我館的管理規則上要求,閉館之后,非必須持續工作的電子設備務必斷電。這也包括我們RFID自助借還設備。這些設備采用Windows系統,使用固態硬盤,同時擁有虛擬還原系統的保護。因此,在設備“意外”斷電情況下,并不會傷害到設備本身。在我館長達三年之久如此操作中,暫未發現由于“意外”斷電而導致設備損壞的情況。因此,在這些RFID設備使用中,依然延續采用“拉閘”方式為其斷電。
為自助借還系統“AutoBorrowBack”創建“快捷啟動”,將其加入Windows啟動項,該系統將隨Windows自動啟動。這些設備的BIOS中開啟“來電啟動”功能。開館前“合閘”通電,設備自動啟動,依次啟動Windows、啟動“AutoBorrowBack”,開始為讀者提供服務。
“AutoBorrowBack”為讀者提供“自助借還”服務,需訪問中間件服務器。在我館網絡結構調整之后,出現了一些該軟件從未考慮的意外。首先,Windows計算機啟動時間少于交換機啟動的時間,導致“AutoBorrowBack”啟動后無法連接到中間件服務器,而卡死在連接失敗的界面。其次,采用了普通PC的架構的設備,在運行過程中由于其他干擾因素,偶爾發生的程序錯誤。雖然這些“意外”出現的概率很低,但在我館的實際使用中,卻是時常發生。
通常采用兩種方式來解決這些問題。第一,與軟件商協商修改軟件,讓軟件能夠智能化處理這些異常。第二,編寫第三方軟件進行異常處理。考慮到與軟件商的溝通成本、修補成本和時間周期,我館決定自行研發第三方軟件“NetStartApp”以解決這些問題。
我們取消“AutoBorrowBack”隨Windows系統啟動,而讓“NetStartApp”隨Windows自動啟動。NetStartApp定時檢測本機與中間件服務器之間的通訊。當通訊正常后,由“NetStartApp”再啟動“AutoBorrowBack”。這樣解決了“AutoBorrowBack”早于交換機完成啟動,而而無法連接到中間件服務器的問題。
如果軟件中遇到未考慮到此“意外”情況,Windows以“關閉”的方式自行處理。一旦軟件“關閉”而退出,就無法繼續提供服務,直到再次啟動該軟件。“NetStartApp”實時監控“AutoBorrowBack”,若有退出,則馬上將其啟動。這樣解決了“AutoBorrowBack”由于“意外”導致被關閉而無法提供服務的問題。
當網絡出現短時間異常時,軟件界面會進行斷網提示,網絡恢復后,可繼續服務。但長時間的網絡異常后,“AutoBorrowBack”會卡死在報錯界面,需手動關閉、啟動軟件。因此,讓“NetStartApp”檢測到網絡異常達到一定的時間,結束“AutoBorrowBack”,當網絡恢復后,再次啟動該軟件即可。
在C#編程語言中,命名空間“System.Diagnostics”中的“Process”中的相關實現可以完成進程相關管理,包括啟動、殺死進程。“System.Timers”中的Timer類中相關實現可以完成定時器相關操作。“System.Net.NetworkInformation”中的“Ping”中的相關實現可以完成網絡狀況的檢測。核心代碼片段如下:
foreach(Process p in Process.GetProcesses()){……;p.Kill();……;}
Process process = new Process();
process.StartInfo.FileName = WinApp;
process.Start();
Ping ping = new Ping();
PingReply reply = ping.Send(NetAddress);
如果在有技術實力的情況下,對于一些少見的系統異常,可通過開發第三方軟件的方式來有效解決,不但可以迅速解決問題,而且可以節省許多溝通成本與時間成本。目前我館開發的“NetStartApp”,已在我館全部自助借還設備上進行了部署,經過三個月的運行,目前效果良好。
[1]利用TIMER控件實現動畫的三種方法[J].馬玉潔.內燃機與配件.2017(01)
[2]Process Class(System.Diagnostics)[EB/OL].https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx,2018
[3]Ping Class(System.Net.NetworkInformation)[EB/OL].https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping(v=vs.110).aspx,2018