摘 要: 根據智能手機的特點設計并實現了一種圖書館管理系統,該系統具有傳統計算機圖書館管理系統的功能,更有針對手機的實用功能設計。讀者無需攜帶實體借書證,可使用虛擬借書證進行借閱登記;無需借助條形碼掃描儀器與電腦,管理員通過調用手機的攝像頭與網絡接口即可完成圖書入庫和圖書的借出與歸還登記。
手機圖書館不僅可以使用戶更便捷地訪問圖書館,也可以在一定程度上提升圖書館的服務質量和水平[1-2]。圖書檢索、館藏管理、借閱管理、個人圖書館等幾乎所有的數字圖書館功能都將在手機平臺上實現。目前國內基于安卓平臺的圖書館管理系統客戶端還不成熟,在整體的系統設計上,基本照搬計算機應用的模式,沒有根據手機的特點進行針對性的設計。為此,本文設計了一套基于安卓手機的圖書館管理系統。該系統具有傳統圖書館管理系統的全部功能,更有針對手機的實用功能設計。
1 系統設計
根據需求分析,功能設計如圖1所示。客戶端分為管理員界面和讀者界面,管理員界面主要用于對圖書的掃描識別和出入庫、檢索等;讀者界面可以查看個人借閱信息和圖書到期提醒、掛失、檢索、虛擬借書證等。其中,圖書錄入模塊通過手機攝像頭掃描識別條形碼,可以取代傳統的條形碼識別儀器;網絡檢索模塊通過手機的網絡接口檢索圖書信息,智能填充錄入表單,可省去大量的人工輸入操作;虛擬借書證模塊將學生的學號生成可被識別的條形碼圖像,顯示在客戶端界面上,可以取代傳統實體借書證進行借閱登記。
整個系統分為前臺客戶端和后臺服務器兩部分,前臺客戶端提供友好的界面以實現用戶注冊、登錄、查詢圖書等功能;后臺服務器負責操作和管理后臺數據庫以實現前臺客戶端提供的大部分功能。用Microsoft SQL Server 2008建立一個數據庫,在Servlet服務器程序中使用JDBC連接數據庫實現對其中數據的一系列操作,然后將查詢結果通過網絡返回給客戶端,客戶端將相關信息呈現給用戶。在客戶端界面上,用戶通過點擊按鈕選擇相應要進行的操作,系統對用戶輸入進行有效判斷,如果輸入有效,則新建線程異步處理網絡任務,獲取到服務器端返回的信息后將數據更新到用戶界面。
2 服務器端的設計
服務器端利用Java EE中的Servlet來提供服務,并將其部署在Tomcat下。服務器端程序采用MVC框架模式開發,主要包括:org.seven.books.dbc,MVC模式中的底層和數據庫層,包中的類用來連接數據庫和操作數據庫;org.seven.books.dao,MVC模式中的Dao層,為service提供服務,封裝對數據庫操作的方法;org.seven.books.servlet包則存放服務器程序,通過復寫doPost()和doGet()方法來響應客戶端的請求。程序流程如圖2所示。
3 安卓手機客戶端的設計
3.1 設計方案
安卓手機客戶端的設計,使用Eclipse在Android SDK 4.1平臺上進行開發。主要包括以下幾個包:com.google.zxing包,是zxing開源項目的內容,主要用于調用設備攝像頭獲取條碼圖像和后臺進行解碼和編碼操作;edu.gdin.booksmanager包,存放Android Activity文件;edu.gdin.booksmanager.adapter包,存放列表適配器,用于填充Activity中自定義的Listview;edu.gdin.booksmanager.utill包,存放網絡通信的工具,用于聯網獲取信息、連接服務器、下載圖書封面等;edu.gdin.booksmanager.view包,存放個性化設計的顯示部件。程序流程如圖3所示。
3.2 關鍵技術
條形碼識別是實現書籍錄入、出借、歸還最關鍵的技術。條形碼識別功能是通過手機的攝像頭對條形碼進行掃描,然后把掃描到的條形碼送到后臺進行解析,如果解析成功后,就不再進行掃描;如果解析不成功,則會再進行掃描采集圖像,再傳到后臺解析,直到能夠識別圖像為止[3-4]。為能夠較快地獲得清晰的圖像、提高識別速度,采用了自動對焦技術,并且定時執行這一對焦操作。后臺對攝像頭傳過來的圖像數據data進行解碼處理,如果能夠解析出來,播放聲音對用戶進行提醒;如果解析不成功,則繼續輪回調用以節約解析的時間[5]。條形碼的生成是實現虛擬借書證最關鍵的技術,主要是靠官方相應的編碼包,將用戶輸入字符轉換成一維數組,然后根據條形碼的編碼規范,使用繪圖功能繪制條形碼[6]。
3.3 功能介紹
(1)注冊
用戶輸入用戶名、密碼后,系統將賬戶信息封裝成JSON格式發送到服務端請求登錄驗證。服務器程序連接數據庫查詢該賬戶信息,若存在,明確其賬戶類型,并將部分用戶信息封裝成JSON數據返回給客戶端,客戶端根據服務端返回的信息對系統進行相關的初始化操作,并根據用戶類型跳轉到指定的界面。
(2)圖書入庫
開源項目ZXing只需要調用設備攝像頭取景即可完成對條形碼的解碼識別,并且具有識別速度快、準確率高的特點。對該項目進行精簡和優化后作為一個模塊并入本系統客戶端。獲取ISBN條碼后,設計了信息檢索模塊,通過網絡接口在互聯網上檢索ISBN條碼,獲取圖書相關信息,再運用HTML解析技術過濾出系統需要的部分,智能填充到錄入表單,確認信息無誤后,只需點擊按鈕即可將表單提交到服務端,自動生成圖書的檢索書號和登錄號,完成圖書的錄入操作,如圖4所示。
(3)圖書借出與歸還
通過調用條形碼識別模塊,只需要依次將取景框對準圖書登錄號條碼區域和借書證條碼區域,即可識別正在操作的圖書登錄號和學生借書證號,封裝好操作請求發送至服務端完成圖書借出或歸還的操作。
(4)查看及檢索書庫
管理員與讀者均可查看圖書館新入庫圖書列表,也可以通過書名、作者、ISBN的關鍵字檢索圖書館的館藏。
(5)個人圖書館
讀者一經登錄系統即可看到個人的借閱記錄,如圖5所示。列表根據借閱時間的長短進行排序,將已經到期和3天內即將到期的圖書用顯眼的顏色標識,并調用系統通知欄通知用戶。
(6)虛擬借書證
根據登錄帳號生成一張可以被本系統識別的虛擬借書證,只需要將攝像頭取景框對準借書證條碼區域即可識別,如圖6所示。多數學生并不會隨身攜帶實體借書證,而絕大多數學生是隨身攜帶手機的,只需要在手機上安裝圖書館客戶端,即可完成借書登記。
本文設計的圖書管理系統不僅具有傳統計算機圖書館管理系統的功能,還有針對手機的實用功能。一方面可以利用手機的便攜性協助圖書管理員隨時隨地進行圖書的管理操作,利用Android手機的攝像頭和移動網絡接口大大簡化了圖書管理員的錄入、借書、還書操作,而無需借助電腦和條形碼掃描設備;另一方面,虛擬借書證的使用可以極大地方便讀者借閱圖書。
參考文獻
[1] 吳政.通用手機圖書館系統的設計與實現[J].現代圖書情報技術,2009(1):98-104.
[2] 陳素梅.手機圖書館開辟移動閱讀的新時代[J].圖書館建設,2007(5):83-86.
[3] 劉寧鐘,楊靜宇.基于傅里葉變換的二維條碼識別[J].中國圖象圖形學報,2011,18(2):45-46.
[4] 肖翔,劉曉明,王云柯.QR碼圖像的矯正與定位方法研究[J].計算機科學,2007,23(2):18-20.
[5] 谷曉琳,黃明,戚海英.基于遺傳算法的二維QR碼圖像識別[J].大連鐵道學院學報,2005,12(3):35-38.
[6] 王文豪,張亞紅,全銀,等.QRCode二維條碼的圖形識別技術[J].計算機技術與發展,2009,8(2):40-43.