肖 錚,王 爽,黃國凡
(廈門大學(xué) 圖書館,福建 廈門 361005)
信息共享空間、自習(xí)室座位資源已成為考量高校圖書館服務(wù)的核心指標(biāo)。臨近期末,讀者對(duì)座位資源的需求更為突出。部分高校圖書館針對(duì)座位緊張、占座現(xiàn)象嚴(yán)重,開發(fā)了自習(xí)室管理系統(tǒng)。[1]商業(yè)化的座位管理系統(tǒng)針對(duì)座位這一獨(dú)特資源進(jìn)行了數(shù)據(jù)庫優(yōu)化、流程簡化,并提供了應(yīng)用接口供個(gè)性化二次開發(fā)。目前已有不少高校圖書館采用了此套座位管理系統(tǒng)。
安裝座位管理系統(tǒng)后,讀者在座位系統(tǒng)終端機(jī)上刷校園卡選號(hào),點(diǎn)擊屏幕,在空座分布圖上選擇座位,打印座位號(hào)條即可憑號(hào)入座。憑條上印有座位號(hào)、校園學(xué)生卡卡號(hào)和進(jìn)館時(shí)間等信息,離開時(shí)需要刷卡釋放座位。如果中途有事要離開座位,也需要重新刷卡,在系統(tǒng)中選擇暫離,座位將自動(dòng)保留一段時(shí)間,如果超時(shí)系統(tǒng)將釋放座位,以便其他讀者選擇。每學(xué)年期末是座位緊張高峰期,從目前廈大圖書館使用情況來看,引進(jìn)此套座位管理系統(tǒng)后,座位利用率有了很大的提升。
但是,此套座位管理系統(tǒng)安裝于我館內(nèi)部網(wǎng),無法由外部Web訪問,亦無法遠(yuǎn)程查詢目前座位狀況。期末座位緊張時(shí)段,學(xué)生經(jīng)常到館后才發(fā)現(xiàn)無位可選,提供通過Web查詢實(shí)時(shí)座位狀況的功能是對(duì)此套座位管理系統(tǒng)的有效改進(jìn),能極大地滿足學(xué)生使用需求,提升系統(tǒng)可用性。
座位管理系統(tǒng)提供了便于與其它應(yīng)用系統(tǒng)互操作和個(gè)性化定制的Web Service,該Web Service使用SOAP 代碼實(shí)現(xiàn)。[2]SOAP(Simple Object Access Protocol,簡單對(duì)象訪問協(xié)議)是一種輕量的、簡單的、基于XML的遠(yuǎn)程訪問協(xié)議,可以與現(xiàn)有的多種傳輸層或應(yīng)用層協(xié)議結(jié)合使用,如TCP、HTTP、SMTP等。SOAP廣泛使用的是基于HTTP和XML協(xié)議的實(shí)現(xiàn) (SOAP=RPC+HTTP+XML),也就是大家常提的Web Service使用的通信協(xié)議。一個(gè)SOAP方法可以簡單地看成遵循SOAP編碼規(guī)則的HTTP請(qǐng)求和響應(yīng)。
座位管理系統(tǒng)Web Service目前提供六個(gè)接口,分別實(shí)現(xiàn)閱覽室狀態(tài)查詢、座位使用狀態(tài)查詢、讀者當(dāng)前狀態(tài)查詢、讀者進(jìn)出狀態(tài)查詢、讀者違規(guī)記錄查詢、違規(guī)黑名單記錄查詢六項(xiàng)功能。這里就本文需要使用的閱覽室狀態(tài)查詢和座位使用狀態(tài)查詢予以詳細(xì)介紹,其它接口不予贅述。
閱覽室狀態(tài)查詢接口 ReadingRoomState(ReadingRoomNo)
參數(shù)說明:
參數(shù) 描述ReadingRoomNo 閱覽室記錄號(hào)
返回XML文檔說明:
參數(shù)說明:
參數(shù) 描述ReadingRoomNo 閱覽室記錄號(hào)
返回XML文檔說明:
座位信息Web查詢頁面需要提供的信息有:
(1)圖書館總座位數(shù),總使用座位數(shù);
(2)各閱覽室狀態(tài);
(3)各閱覽室總座位數(shù),總使用座位數(shù)。
因?yàn)殚営[室的狀態(tài)和座位使用情況是不斷變化的,因此在設(shè)計(jì)座位信息的Web查詢頁面時(shí),必須要考慮如何能夠在Web頁面上顯示出實(shí)時(shí)的情況,因此就需要使用Ajax技術(shù),讓W(xué)eb頁面在不進(jìn)行手動(dòng)刷新時(shí)自動(dòng)獲取當(dāng)前座位信息,并顯示在Web頁面上。
為方便Ajax程序調(diào)用,在座位管理系統(tǒng)Web Service的基礎(chǔ)上,再設(shè)計(jì)一個(gè)二次封裝接口。該接口負(fù)責(zé)從數(shù)據(jù)庫提取獲得閱覽室記錄號(hào),通過Web Service提交調(diào)用請(qǐng)求,解析Web Service返回結(jié)果,計(jì)算圖書館總座位數(shù)、總使用座位數(shù)。
流程如圖1所示:
圖1 座位管理系統(tǒng)Web頁面實(shí)現(xiàn)流程圖
座位管理系統(tǒng)提供的Web Service需要通過閱覽室記錄號(hào)提交調(diào)用請(qǐng)求返回查詢結(jié)果。調(diào)用座位系統(tǒng)Web Service的ASP代碼如下:[3]
封裝二次接口,返回圖書館總座位信息及各閱覽室座位信息:
而后使用Ajax調(diào)用二次封裝接口數(shù)據(jù),在查詢頁面顯示實(shí)時(shí)信息:
為了使座位信息頁面更加直觀,在座位系統(tǒng)查詢頁面上使用色塊圖代表閱覽室,通過顏色區(qū)別閱覽室座位數(shù)使用情況。通過Ajax動(dòng)態(tài)調(diào)用實(shí)時(shí)座位數(shù),判斷已用座位與總座位數(shù)之比來確定色塊使用的CSS類,并動(dòng)態(tài)更新頁面上的相關(guān)信息。最終查詢頁面如圖2所示:
圖2 座位管理系統(tǒng)Web查詢頁面效果圖
座位管理系統(tǒng)除了提供閱覽室相關(guān)信息的Web Service接口外,還提供讀者相關(guān)信息的接口。為了讓讀者更加便利地查看自己的選座信息、違規(guī)信息等數(shù)據(jù),筆者下一步計(jì)劃在圖書館自動(dòng)化系統(tǒng)“我的圖書館”中,通過座位管理系統(tǒng)的Web Service整合讀者個(gè)人座位記錄查詢和違規(guī)記錄查詢。
[1]孫發(fā),吳代莉,曾為眾.圖書館自習(xí)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2010(5):93-98.
[2]Web服務(wù)編程,REST與SOAP[EB/OL].http://www.ibm.com/developerworks/cn/webservices/0907_rest_soap/.
[3]使用Asp(vbs)來讀取XML數(shù)據(jù)島[EB/OL].http://www.cnblogs.com/hanwater/articles/1405083.html.