(成都理工大學(xué)圖書館 四川 成都 610059)
伴隨著RFID技術(shù)在圖書館的引入,圖書館智能化得到了進(jìn)一步的提升。崗位逐步被智能化設(shè)備所替代,服務(wù)效率卻不斷提高。圖書館工作人員從原來重復(fù)而單調(diào)的體力工作者逐漸轉(zhuǎn)換成更富有生產(chǎn)力的知識工作者。但這些智能化設(shè)備偶發(fā)故障,卻會為圖書館帶來不少的麻煩。因此,如何確保其正常運(yùn)作,對圖書館提出了更高的要求。
成都理工大學(xué)圖書館,從開始嘗試RFID,三年時(shí)間后就全面采用RFID。由于RFID在智能化上擁有的絕對優(yōu)勢,讓我館在讀者服務(wù)和圖書館創(chuàng)新方面走到我國高校圖書館行業(yè)的前列。RFID技術(shù)引入,圖書館工作人員大幅縮減,同時(shí)在館舍面積擴(kuò)大和讀者的數(shù)量的增加的情況下,我館提供的服務(wù)質(zhì)量和服務(wù)水平有增無減。圖書借還這個(gè)作為圖書館最主要的工作之一,已全面由RFID自助借還設(shè)備替代。
圖書館為重點(diǎn)防火單位。因此在我館的管理規(guī)則上要求,閉館之后,非必須持續(xù)工作的電子設(shè)備務(wù)必?cái)嚯姟_@也包括我們RFID自助借還設(shè)備。這些設(shè)備采用Windows系統(tǒng),使用固態(tài)硬盤,同時(shí)擁有虛擬還原系統(tǒng)的保護(hù)。因此,在設(shè)備“意外”斷電情況下,并不會傷害到設(shè)備本身。在我館長達(dá)三年之久如此操作中,暫未發(fā)現(xiàn)由于“意外”斷電而導(dǎo)致設(shè)備損壞的情況。因此,在這些RFID設(shè)備使用中,依然延續(xù)采用“拉閘”方式為其斷電。
為自助借還系統(tǒng)“AutoBorrowBack”創(chuàng)建“快捷啟動”,將其加入Windows啟動項(xiàng),該系統(tǒng)將隨Windows自動啟動。這些設(shè)備的BIOS中開啟“來電啟動”功能。開館前“合閘”通電,設(shè)備自動啟動,依次啟動Windows、啟動“AutoBorrowBack”,開始為讀者提供服務(wù)。
“AutoBorrowBack”為讀者提供“自助借還”服務(wù),需訪問中間件服務(wù)器。在我館網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整之后,出現(xiàn)了一些該軟件從未考慮的意外。首先,Windows計(jì)算機(jī)啟動時(shí)間少于交換機(jī)啟動的時(shí)間,導(dǎo)致“AutoBorrowBack”啟動后無法連接到中間件服務(wù)器,而卡死在連接失敗的界面。其次,采用了普通PC的架構(gòu)的設(shè)備,在運(yùn)行過程中由于其他干擾因素,偶爾發(fā)生的程序錯誤。雖然這些“意外”出現(xiàn)的概率很低,但在我館的實(shí)際使用中,卻是時(shí)常發(fā)生。
通常采用兩種方式來解決這些問題。第一,與軟件商協(xié)商修改軟件,讓軟件能夠智能化處理這些異常。第二,編寫第三方軟件進(jìn)行異常處理??紤]到與軟件商的溝通成本、修補(bǔ)成本和時(shí)間周期,我館決定自行研發(fā)第三方軟件“NetStartApp”以解決這些問題。
我們?nèi)∠癆utoBorrowBack”隨Windows系統(tǒng)啟動,而讓“NetStartApp”隨Windows自動啟動。NetStartApp定時(shí)檢測本機(jī)與中間件服務(wù)器之間的通訊。當(dāng)通訊正常后,由“NetStartApp”再啟動“AutoBorrowBack”。這樣解決了“AutoBorrowBack”早于交換機(jī)完成啟動,而而無法連接到中間件服務(wù)器的問題。
如果軟件中遇到未考慮到此“意外”情況,Windows以“關(guān)閉”的方式自行處理。一旦軟件“關(guān)閉”而退出,就無法繼續(xù)提供服務(wù),直到再次啟動該軟件?!癗etStartApp”實(shí)時(shí)監(jiān)控“AutoBorrowBack”,若有退出,則馬上將其啟動。這樣解決了“AutoBorrowBack”由于“意外”導(dǎo)致被關(guān)閉而無法提供服務(wù)的問題。
當(dāng)網(wǎng)絡(luò)出現(xiàn)短時(shí)間異常時(shí),軟件界面會進(jìn)行斷網(wǎng)提示,網(wǎng)絡(luò)恢復(fù)后,可繼續(xù)服務(wù)。但長時(shí)間的網(wǎng)絡(luò)異常后,“AutoBorrowBack”會卡死在報(bào)錯界面,需手動關(guān)閉、啟動軟件。因此,讓“NetStartApp”檢測到網(wǎng)絡(luò)異常達(dá)到一定的時(shí)間,結(jié)束“AutoBorrowBack”,當(dāng)網(wǎng)絡(luò)恢復(fù)后,再次啟動該軟件即可。
在C#編程語言中,命名空間“System.Diagnostics”中的“Process”中的相關(guān)實(shí)現(xiàn)可以完成進(jìn)程相關(guān)管理,包括啟動、殺死進(jìn)程?!癝ystem.Timers”中的Timer類中相關(guān)實(shí)現(xiàn)可以完成定時(shí)器相關(guān)操作?!癝ystem.Net.NetworkInformation”中的“Ping”中的相關(guān)實(shí)現(xiàn)可以完成網(wǎng)絡(luò)狀況的檢測。核心代碼片段如下:
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);
如果在有技術(shù)實(shí)力的情況下,對于一些少見的系統(tǒng)異常,可通過開發(fā)第三方軟件的方式來有效解決,不但可以迅速解決問題,而且可以節(jié)省許多溝通成本與時(shí)間成本。目前我館開發(fā)的“NetStartApp”,已在我館全部自助借還設(shè)備上進(jìn)行了部署,經(jīng)過三個(gè)月的運(yùn)行,目前效果良好。
[1]利用TIMER控件實(shí)現(xiàn)動畫的三種方法[J].馬玉潔.內(nèi)燃機(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