達州職業技術學院 張彬
隨著智能圖書館和數字圖書館的出現,傳統功能圖書館的傳播社會文化和提供文獻信息等相關功能也發生了改變。在此背景下,本文通過運用新一代信息技術,在圖書館中有效運用Android平臺,實現移動圖書館功能設計與實現,為用戶提供更加方便快捷的服務。
隨著網絡時代的到來,移動通信用戶數量穩步增長,各種各樣的移動通信工具成為人們生活中的必需品,將無線通信技術運用到人們日常生活中是大勢所趨[1]。以手機為代表的移動終端的廣泛使用、互聯網的高速發展,帶來了信息的快速整合與傳播,這已經徹底改變了人們傳統的社交、通信、娛樂和信息獲取的方式,進入了一個新媒體時代[2]。Android操作系統憑借著自身完整、可靠、開放等優勢,在智能移動通信終端的操作系統平臺中脫穎而出,占有著大量的市場份額,并隨著使用者數量的持續增多和基于此平臺應用程序種類的日漸豐富,平臺技術逐漸走向成熟[3]。目前,Android系統已經逐漸成為全球第一大智能操作系統。作為輕量級Web應用服務器的Tomcat由于其先進的技術、卓越的穩定性及可擴展性,而且是免費的,在中小型系統開發和并發訪問該系統的用戶不會很多的情況下被普遍使用。Tomcat深受廣大Java愛好者的喜愛以及部分應用開發商的認可,已經成為當下比較流行的Web應用服務器。基于Android+Tomcat的系統架構可同時滿足客戶端的用戶體驗與服務器端系統的復雜信息處理功能,是移動應用的一種較完善的開發模式。
隨著信息技術的不斷發展,圖書館作用也發生了很大改變。智能圖書館和數字圖書館已經將傳統功能圖書館逐漸替代,隨著新技術的發展,傳統功能圖書館的傳播社會文化和提供文獻信息等相關功能性也發生了改變。開發和研究移動圖書管理系統,不但使圖書管理員工作的地點會更加靈活,學生也能夠隨時地預約和查詢以及掛失圖書[4]。手機客戶端形式的圖書管理系統,能夠促使學生接觸更多的圖書館信息。為此,本文開展基于Android的移動圖書館系統體系結構設計、功能設計以及實現方法研究,相對于傳統Web應用,該系統與生活更加貼近,使圖書館信息更加具有實時性。
移動圖書管理系統采用B/S+C/S架構構成,見圖1所示。
圖1為系統展示端,分成移動設備端和PC機端。移動設備采用的是C/S結構,C/S即客戶端/服務器的方式,C為客戶端,由用戶自行安裝客戶端定制的應用軟件,進行數據的錄入和展示,S為服務器端,則提供數據的處理與存儲。PC端采用的是B/S結構,B/S的S端和C/S的S端類似,都是提供數據,不同的是展示端由B瀏覽器進行顯示。C/S結構下的展示端可以自行設計更簡單易用的界面,提升用戶的使用體驗。移動校友錄的C/S架構設計成讓移動用戶自行安裝系統對應的Android系統的apk文件,主要用于學生或老師登錄系統進行移動查閱圖書刊物,進行電子雜志的閱讀,并實現移動聊天功能。B/S架構設計主要用于系統管理員進行基礎數據的維護,不需要華麗的操作界面,只需要一臺能連入互聯網的PC機,打開瀏覽器就可以進行系統的維護操作。

圖1 系統架構圖
圖書館是一個需要進行海量信息存儲的平臺,因此系統服務器端采用了云存儲的方式。云存儲的數據服務器除了能對海量數據保存,并能提供安全高效的數據并發處理和保護功能。云存儲能保證傳統數據庫數據的正常訪問,同時也能對大量傳統文件進行快速高效的讀取服務,這些特點印證了云存儲是移動圖書館數據服務端的首選技術。圖2為系統網絡結構。

圖2 系統網絡結構圖
構建基于云存儲結構的存儲平臺,自然而然就會想到去運用處理海量數據的云結構Hadoop。用Hadoop的HDFS進行分布式數據存儲,運用MapReduce進行并行編程模型,把其與最經典的系統平臺結構MVC進行結合。
基礎層主要采取的是Hadoop和mysql數據庫結合的方式進行處理。Hadoop主要用來對非結構化或半結構化(HBase)數據進行存儲和分析,而結構化的數據則一般使用數據庫來進行存儲和訪問。因此,基于Hadoop集群實現結構化的海量圖書館數據存儲,比如館藏查詢、電子書籍、視頻等大文件系統。而對于系統個人信息模塊產生的數據,暫時采取的是對云技術支持的開源mysql數據庫進行存儲。
平臺層主要考慮的是如何將云計算存儲的信息系統進行部署,并采用并行方式調度云存儲數據。Apache Hadoop是一款支持數據密集型分布式應用并以Apache 2.0許可協議發布的開源軟件框架。它支持在商品硬件構建的大型集群上運行的應用程序,并實現了MapReduce的編程范式:應用程序被分割成許多小部分,而每個部分都能在集群中的任意節點上執行或重新執行。Apache Hadoop成為大數據處理的標準,但由于它對負載平衡性要求比較高,就決定了它對硬件需求比較高和部署、運行的復雜性,因此運行在此平臺上就不得不讓人有安全上的顧慮,并且系統出故障的話會難于下手等,這些難題讓其無法充分發揮Hadoop的威力。通過把Apache Hadoop節點從底層物理基礎架構剝離,VMware可以將云基礎架構的優勢帶給Hadoop,包括快速部署、高可用性、最佳資源利用率、安全多用戶。
業務層的核心功能在于讓用戶快速查詢到想要的館藏資源,進行在線閱讀,并能預約圖書,下載電子資料到手機進行離線閱讀。這一層考慮用Android和Hadoop都能支持的Java語言進行編碼實現。
用戶層是直接面向用戶,采取的是面向用戶的Web2.0設計模式,在移動設備上的應用和在電腦上的應用給用戶的體驗必然不一樣,因此需要遵循移動設計的準則。由于本系統采用以B/S和C/S結構相結合的方式,移動端和PC端都進行設計,都要遵循Web2.0的準則,以用戶體驗為上。
系統整體代碼組織模式為MVC方式,即模型-控制器-視圖(Model、Controller、View)模式。
Model(模型)主要用一系列的方法提供應用程序的數據來源,在移動圖書管理系統中系統的數據來源于用Jdbc獲取Mysql的數據和Hadoop的HDFS獲取的文件映射。從Hadoop處獲取的資源性能是高于直接運用jdbc獲取的資源,這里為了提高性能,改成用Hadoop的Hbase技術將Mysql數據庫進一步封裝,提高性能。
Controller(控制器)是對數據進行處理,銜接數據層和視圖層,起到承上啟下的關鍵作用。因為圖書館是具有大數據量的系統,并且本系統涉及的圖書館有三個子館,決定了數據只能通過云存儲的數據集方式進行存儲。多臺服務器同時運行時,就需要用并行處理性能高的MapReduce。本系統中的控制層主要是用MapReduce處理并行查詢,并行下載期刊資源,對數據進行挖掘推送顯示。
Android平臺主要包括五個部分,即應用程序框架、關鍵應用程序、Android運行庫、C/C++函數庫以及優化了的Linux。根據Android平臺,設計移動圖書館管理系統功能的模塊,見圖3所示。

圖3 移動圖書館管理系統功能模塊圖
管理員將用戶名及密碼輸入,進入到軟件主頁面,圖書管理、學生用戶管理、借閱預約圖書、罰款繳費、掛失歸還圖書以及幫助和注銷等操作便可以進行。(1)圖書管理功能:書號輸入,進入詳細的圖書信息頁面,對圖書有關信息可以查詢;新書入庫,并且將新書的有關信息錄入;(2)學生管理功能:學生學號輸入,查看和刪除以及修改的操作都可以進行;(3)借閱預約圖書功能:學生學號輸入,對學生預約和借閱圖書情況進行查看;(4)罰款繳費功能:學生學號輸入,對學生欠費的信息進行查看;(5)掛失歸還圖書:學生學號輸入,該學生借閱的全部圖書顯示出來,進行歸還和掛失的操作;(6)管理員的管理功能:該功能主要是為超級管理員設計的,刪除和修改管理員的操作。
學生將用戶名及密碼輸入,進入軟件主頁面,查詢、預約、掛失、幫助、注銷以及退出等相關操作便可以進行。(1)查詢功能:查詢個人借書和查詢館內圖書。查詢還分為高級查詢和簡單查詢,并且對模糊查詢也給予支持。(2)預約功能:預約圖書號輸入,若未被借閱,便能夠進行預約;否則不可以被借閱。預約管理主要對預約圖書信息以及預約取消進行查詢。(3)掛失功能:學生學號和密碼輸入,該學生借的全部圖書顯示出來,再將需要掛失的圖書進行選擇。(4)幫助功能:介紹基于Android的移動圖書館的系統功能的使用方法。(5)注銷功能:用其他用戶登錄,或者用戶退出移動圖書館管理系統。
該系統主要運用了Mysql數據庫,由許多不同客戶程序、數據庫以及1個服務器守護程序構成。數據庫是系統實現的基礎,設計的過程中,合理性必須要保證。合理科學地設計數據庫,無論是數據庫的應用,還是后期維護數據,都會比較方便。根據需要,構建了管理員基本信息表、用戶基本信息表、借閱圖書信息表、圖書基本信息表、超期圖書信息表、借閱圖書信息表、圖書基本信息表以及掛失圖書信息表等數據表。
根據需要,對要求功能進行分析,使各模塊功能得以實現。為了使移動圖書館管理系統安全性能夠有效地提升,無論是管理員客戶端,還是學生客戶端都要單獨開發。這樣能夠避免學生得到管理員密碼以后,登錄系統并且將數據庫信息改動。
例如,學生登錄,先進入歡迎頁面,學生將用戶名及密碼輸入,進入操作主頁面。主頁面按鈕主要有查詢、掛失、預約、注銷、關于、幫助以及退出。
點擊學生主界面上的查詢按鈕,進入到查詢圖書的界面,該界面主要包括查詢個人節約和查詢館內圖書以及返回到上一界面的功能,兩個查詢按鈕左側的圖標,提示用戶進行單擊。對圖書信息查詢的按鈕進行單擊,進入到查詢圖書信息的界面,該界面又分為高級查詢和簡單查詢,單擊高級查詢按鈕和簡單查詢按鈕,不同界面就會顯示出來,界面下方為動畫控件,既可以點綴圖像,又可以添加廣告。
測試機器運用實體機與虛擬機集合測試,測試不同用戶登錄。其一,管理員用戶的登錄軟件,對圖書管理、用戶管理、借閱管理、查詢圖書、預約管理、繳費管理、掛失歸還管理以及管理員管理等操作進行測試;其二,學生用戶登錄軟件,對預約和查詢以及掛失圖書等操作進行測試。經過測試,軟件能夠正常地運行,實現基于Android的移動圖書館功能與分析需求相符合。
分析和研究基于Android的移動圖書館的主要目的,就是將當前應用圖書館擴展到手機終端,廣大的教師和學生不用親自到圖書館,運用手機就能夠操作查詢和預約以及續借圖書等,并且新書到圖書館以后,系統會用短信的形式將提醒信息發送。既給師生書刊借閱和文獻提供了方便,又能夠協助圖書館管理藏書的借出、整理、歸還、催還以及歸類等。