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