文/魏李方
(北京石油化工學院網絡信息中心 北京市 102617)
移動互聯網通過無線接入設備訪問互聯網,能夠實現移動終端之間的數據交換,是計算機領域繼大型機、小型機、個人電腦、互聯網之后的第五個技術發展周期。作為移動通信與傳統互聯網的有機融合體,移動互聯網被視為未來網絡發展的核心和最重要的趨勢之一[1]。與傳統互聯網相比,移動互聯網最顯著的優勢在于其方便快捷和安全可靠。目前,隨著線上線下、有線無線等各種業務模式的快速融合、發展和創新,移動互聯網已經滲透到日常生活的方方面面。
為了適應移動互聯網技術的高速發展和移動設備的全面普及的情況,很多學者已經在圖書館相關領域進行了形式多樣的探索、研究和實踐,比如陳子楊的基于移動端高校圖書館選座系統[2],姜浙煒的高校移動圖書館管理系統的設計與實現[3]等。本文結合實際情況,采用當前流行的HTML5、WebSocket、SpringBoot、Redis等技術,設計并實現了一套基于企業微信的高校移動圖書管理系統。
HTML5 是用于取代1999年所制定的 HTML 4.01和XHTML1.0標準的HTML標準版本,目前已經正式定稿并得到主流瀏覽器的廣泛支持。HTML5提供了多種新特性,比如:HTML5的Canvas可以脫離 flash 提供豐富的動畫效果,從而直接在瀏覽器顯示圖形或動畫; HTML5可以實現地理定位,通過支持HTML5的瀏覽器獲取定位信息,定位精度能達到2、3m,從而可以構建功能強大的位置感知類應用程序; HTML5還在瀏覽器中內嵌了一個輕量級的本地SQL數據庫以加速搜索、緩存及索引功能。HTML5的這些新特性使其在移動應用開發領域大放異彩。
WebSocket是從HTML5開始提供的在單個TCP連接上進行全雙工通訊的協議。WebSocket通信協議于2011年被IETF定為標準RFC 6455,并由RFC7936進行了補充規范。同時,WebSocket API也被W3C采納為HTML標準。目前,所有主流的瀏覽器都支持WebSocket協議。
傳統的HTTP協議是一種無狀態的請求響應模式,即由客戶端瀏覽器主動發起請求,服務端應用程序處理完該請求后向客戶端瀏覽器返回結果。在這種請求響應模式中,服務端應用程序在沒有收到客戶端瀏覽器的請求時不能主動向客戶端瀏覽器發送數據。
隨著互聯網的全面普及,很多應用系統需要主動向用戶推送最新的數據和信息。在WebSocket技術出現之前,應用系統主要采用輪詢來實現這種推送效果,即由客戶端瀏覽器在固定的時間間隔向服務器發送請求,然后由服務器返回最新的數據給客戶端瀏覽器。但是,輪詢技術有個明顯的缺點,即客戶端瀏覽器需要頻繁向服務器發送請求,在服務器端數據沒有變化時這些請求完全是無效的請求。頻繁的輪詢操作一方面會對客戶端性能產生負面影響,另一方面也會浪費的網絡帶寬和服務器資源。
隨著WebSocket協議的出現,這個問題得到了完美的解決。通過WebSocket協議,服務端可以主動向客戶端推送消息,而且數據格式簡單,性能開銷小,通信高效。另外,WebSocket協議的所有的操作都采用消息觸發,不會阻塞UI,這使得UI有更快的響應速度,從而能提供更好的用戶體驗。
Spring是一個開源容器框架,可以配置各種bean、維護bean與bean之間的關系,可以接管J2EE系統中web層、服務層及持久層的各種組件。在近年來J2EE開發技術的快速發展中,Spring框架以其獨特的優勢得到普遍應用。SpringBoot是一種基于Spring框架的微服務架構,主要通過提供豐富的集成選項來簡化新Spring應用的開發過程、配置過程、部署過程和監控過程[4]。
為了減輕后臺圖書管理系統和數據庫的壓力,引入Redis內存型數據庫作為整個移動圖書管理系統的緩存。Redis是一個開源免費、高性能的key-value非關系型內存數據庫,可以支持每秒幾十萬次的讀/寫操作,性能遠超常用的Oracle、SQL Server、MySQL等關系型數據庫,支持集群、分布式、主從同步等配置,具有良好的可擴展性。Redis不僅支持簡單的key-value類型數據,還提供string,list,set,zset,hash等數據結構的存儲,適用于豐富的應用場景;支持Publish/Subscribe通知,能有效減少系統開銷;支持設置key有效期等等特性。
系統后臺以Spring為核心容器來管理和配置各類Bean;以輕量級的Spring MVC為Web框架來處理來自客戶端的請求;以MyBatis作為持久層框架來處理數據庫的讀寫操作;采用Apache Shiro為系統的安全框架,完成身份驗證、授權、加密和會話管理等安全相關任務;采用Redis內存型數據庫對常用數據進行緩存; 使用Quartz任務調度系統來進行系統中各種定時任務的管理和調度。同時,系統還提供標準Rest服務API,供校內其他應用系統調用。
客戶端使用HTML5技術,集成Bootstrap4、Vue.js框架,采用響應式、扁平化布局,能自動適應PC、Pad、手機等各種終端設備。先進的HTML5技術既能保證客戶端擁有出眾的渲染效果和良好的用戶體驗,又能降低開發成本和復雜度,提高開發效率,而且還能為客戶端提供優異的跨平臺能力。
系統的主要功能主要分為服務、資源和動態三大類,涵蓋了圖書管理系統中的書目檢索、借閱排行、讀者薦購和空間預約等常用功能。移動圖書管理系統的主界面如圖1所示。

圖1:主要功能
書目檢索就是通過一定的方法,從數量龐大、類型復雜的書目中迅速、準確地查找出所需書目的過程。一個功能齊全的書目檢索系統能有效地提高查找效率和準確率[6]。基于PC端的圖書管理系統,能夠提供根據作者、書名、內容等條件檢索的強大的圖書檢索功能。由于移動設備屏幕的局限,書目檢索功能、書目檢索途徑、書目檢索條件不便過于復雜,為此,移動圖書管理系統只提供根據書名進行圖書檢索的功能。移動圖書檢索功能的截屏如圖2所示。

圖2:書目檢索
北京石油化工學院圖書館藏書約100多萬冊。在這樣海量書目中快速、有效地檢索到所需圖書是一件困難的事情。《普通高等學校圖書館規程(修訂)》第17條中規定:高等學校圖書館應“通過編制推薦書目、導讀書目,舉辦書刊展評等多種方式進行閱讀輔導”[8]。為了有效進行閱讀輔導、做好讀者服務、提高館藏利用率,各圖書管理系統都引入了借閱排行功能。借閱排行能反映各個圖書分類中圖書的借閱情況,借閱量排行靠前的圖書一般是該類圖書中比較受歡迎的圖書。因此,借閱排行對幫助讀者進行圖書選擇十分重要。移動圖書管理系統中圖書排行的界面如圖3。

圖3:借閱排行
雖然每年都進行大量的圖書采購,但是“有書無讀者”、“有讀者無書”的現象仍然比較常見。為了進一步優化圖書資源配置、采購更符合讀者需求的圖書、實現圖書館管理模式從“資源-服務-需求”轉變為“需求-服務-資源”[9],我們把現有圖書管理系統中的讀者薦購功能移植到了移動圖書管理系統中。移動圖書管理系統中的讀者薦購界面如圖4所示。

圖4:讀者薦購
為了進一步提高圖書館服務水平,圖書館中設置了若干研討間,配置了桌椅、網絡、演示設備等設施。研討間充分融合了圖書、網絡和物理空間等資源,提供了全新的服務模式,讀者在圖書閱覽的基礎上還可以在研討間進行交流和研討。為方便讀者,移動圖書管理系統提供了研討間預約功能。移動圖書管理系統中的空間預約界面如圖5所示。

圖5:空間預約
實踐表明,在現有的圖書館管理系統的基礎上,采用HTML5、WebSocket、SpringBoot、Redis等技術開發的移動圖書管理系統,能為讀者提供便捷高效的圖書檢索、續借預約、原文傳遞、借閱排行等圖書服務。隨著移動互聯網技術的迅速發展、移動終端性能的進一步提升和5G時代的全面開啟,圖書館的移動應用業務必將變得更加個性化和智能化,從而為讀者提供更加優異的圖書服務。