呂艾娜++于芮++路夢遙++孟卓+李林輝
摘要: 基于中國移動(dòng)圖書館的發(fā)展現(xiàn)狀,及國內(nèi)大學(xué)圖書館的實(shí)際需求,提出了基于Android平臺(tái)的圖書館服務(wù)系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì),闡述了基于Android平臺(tái)的圖書館管理系統(tǒng)的設(shè)計(jì)思想、開發(fā)模型、主要功能模塊以及關(guān)鍵技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)。使用戶可以通過手機(jī)客戶端訪問,實(shí)現(xiàn)圖書查詢、預(yù)約、續(xù)借、推薦借閱等功能。該系統(tǒng)的實(shí)現(xiàn)與傳統(tǒng)的Web應(yīng)用進(jìn)行了良好的互補(bǔ),更加貼近學(xué)生的生活。
關(guān)鍵詞: Android; 圖書管理系統(tǒng); 功能模塊; 設(shè)計(jì)
中圖分類號(hào):G250.7
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):2095-2163(2017)04-0079-04
0引言
隨著信息技術(shù)的發(fā)展,智能手機(jī)功能日益強(qiáng)大,移動(dòng)應(yīng)用出現(xiàn)創(chuàng)新熱潮。傳統(tǒng)圖書館正由數(shù)字圖書館和智能圖書館逐漸替代與承續(xù),圖書館的作用也悄然發(fā)生著改變。更多的用戶通過發(fā)達(dá)更新的信息技術(shù)手段,方便快捷地智能掌控、精通利用圖書館的資源包括借閱文獻(xiàn)圖書,及時(shí)獲知圖書館自習(xí)室的使用情況,而且連帶配設(shè)了圖書借閱過期后的微信繳費(fèi)功能等。同時(shí)也能夠更趨實(shí)效地提高圖書館傳播社會(huì)文化的輻射力。在此背景下,開發(fā)基于Android移動(dòng)平臺(tái)的圖書館應(yīng)用即已成為當(dāng)下研究的潮流走向[1]。高端完善的Java學(xué)科理論知識(shí)體系則為Android系統(tǒng)開發(fā)提供了強(qiáng)大的技術(shù)保障。另外,Google也為其研發(fā)推出了豐富的api類庫,以及大量的開源代碼可借參照瀏覽,從而大幅地降低開發(fā)成本。
1基于Android平臺(tái)的圖書館圖書服務(wù)系統(tǒng)設(shè)計(jì)
1.1系統(tǒng)功能模塊設(shè)計(jì)
本系統(tǒng)針對(duì)某學(xué)校圖書館設(shè)計(jì),根據(jù)用戶需要研發(fā)提出系統(tǒng)功能模塊組成,對(duì)其研究可得功能闡析如下。
1)[JP2]書目查詢。書目查詢是圖書館的基礎(chǔ)服務(wù)之一,包含2個(gè)子功能:書目檢索和分類瀏覽。讀者通過輸入了專屬用戶名、密碼登錄客戶端后,就可以通過查詢書名或類別等其他信息進(jìn)行搜索,從而查詢獲知當(dāng)前此書有無、可借數(shù)量、書號(hào)及館藏地點(diǎn)等信息。讀者在通過書目查詢得到圖書館館藏的預(yù)借信息后,即可將該信息保存在手機(jī)上,利于此后調(diào)閱使用。[JP]
2)我的圖書館。我的圖書館包括剩余借書時(shí)間查詢、續(xù)借、薦購情況查詢等功能。讀者可以在我的圖書館中查詢本人的借閱信息,隨時(shí)了解自己的借閱現(xiàn)狀,避免借閱超時(shí)的事件發(fā)生;讀者可以對(duì)當(dāng)前即將到期的圖書,隨時(shí)選擇進(jìn)入“我的圖書館”中辦理續(xù)借手續(xù)。而對(duì)于那些已經(jīng)超期借閱的圖書,還可在“我的圖書館”中,通過圖書借閱過期后的微信繳費(fèi)功能進(jìn)行繳費(fèi)。
3)圖書館公告。圖書館公告中包括新書通報(bào)功能、圖書館信息發(fā)布及公示功能和讀者薦購及相應(yīng)的反饋功能。讀者可以在此瀏覽圖書館的近期動(dòng)態(tài)、發(fā)布的公告。圖書館也會(huì)在圖書館公告中向讀者定期征求各類薦購圖書,及時(shí)滿足讀者的需求。
4)其他功能。針對(duì)各大高校圖書館座位資源緊張,座位未能合理利用的現(xiàn)狀,同時(shí)也為了滿足讀者的自習(xí)需求,避免占座現(xiàn)象的頻發(fā),本系統(tǒng)又輔助研發(fā)了圖書館自習(xí)室座位占用狀況查詢功能。
1.2系統(tǒng)架構(gòu)設(shè)計(jì)
1)前臺(tái)客戶端(手機(jī)客戶端)。作為在移動(dòng)設(shè)備上運(yùn)行的前臺(tái)程序,主要用于建立連接,實(shí)現(xiàn)與用戶的交互,將用戶的請(qǐng)求發(fā)送給后臺(tái)服務(wù)器。同時(shí)還要一并接收來自服務(wù)器端的響應(yīng)信息。
2)后臺(tái)服務(wù)器端。支持前臺(tái)客戶端,接收客戶端服務(wù)請(qǐng)求,執(zhí)行與數(shù)據(jù)庫的通信,并將處理結(jié)果封裝為數(shù)據(jù)包返回給客戶端。
3)數(shù)據(jù)庫。作為數(shù)據(jù)存儲(chǔ)的介質(zhì),只能通過服務(wù)器來控制并建立訪問。設(shè)計(jì)數(shù)據(jù)庫時(shí),需要遵循第三范式的要求,以減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)提升增、刪、改、查的速度[2]。整個(gè)系統(tǒng)內(nèi)實(shí)際包含的信息有圖書館信息、圖書館借閱信息、讀者信息等。
本文研發(fā)系統(tǒng)的設(shè)計(jì)運(yùn)行過程如圖1所示。這一設(shè)計(jì)即使得移動(dòng)終端上業(yè)務(wù)邏輯簡單,不需要運(yùn)行大量的計(jì)算和數(shù)據(jù)存儲(chǔ),降低了客戶端的優(yōu)化整合難度和對(duì)硬件的要求。同時(shí)將復(fù)雜的事務(wù)處理邏輯、數(shù)據(jù)庫操作都調(diào)配在運(yùn)算能力強(qiáng)、適于處理大信息量的服務(wù)器端獲得實(shí)現(xiàn),由此強(qiáng)化并提升了圖書館管理APP的快速響應(yīng)能力與良好的用戶體驗(yàn)。最后將服務(wù)器端直接與數(shù)據(jù)庫進(jìn)行連接,保證了數(shù)據(jù)的安全性和一致性。
基于Android開發(fā)的圖書館服務(wù)系統(tǒng)將手機(jī)客戶端APP通過Android提供的WebView使用Http通信機(jī)制訪問Web服務(wù)器端,服務(wù)器接收客戶端服務(wù)請(qǐng)求調(diào)用Jdbc的相應(yīng)方法操作后臺(tái)數(shù)據(jù)庫,將處理結(jié)果返回客戶端??蛻舳嗽賹⒔邮諗?shù)據(jù)顯示到APP中的效果定制界面上。
2系統(tǒng)實(shí)現(xiàn)
針對(duì)系統(tǒng)設(shè)計(jì)成果,使用MySql數(shù)據(jù)庫模擬圖書館數(shù)據(jù)庫,即可構(gòu)建得到系統(tǒng)的服務(wù)器端接口、客戶端接口和圖1中的具體模式功能。本系統(tǒng)以現(xiàn)有圖書館業(yè)務(wù)為基礎(chǔ),通過使用MySql模擬圖書館數(shù)據(jù)庫,將圖書館的部分功能延伸到移動(dòng)終端,使讀者可通過手機(jī)實(shí)現(xiàn)圖1中的功能。作為現(xiàn)有圖書館系統(tǒng)的設(shè)計(jì)輔助,將該系統(tǒng)與現(xiàn)有系統(tǒng)實(shí)現(xiàn)無縫對(duì)接。
本系統(tǒng)在Android環(huán)境下,主要采用Java開發(fā)工具和MySQL數(shù)據(jù)庫設(shè)計(jì)實(shí)現(xiàn),服務(wù)系統(tǒng)由客戶端和服務(wù)器端組成[3]。客戶/服務(wù)器應(yīng)用模式的特點(diǎn)是大都將基于“胖客戶機(jī)”結(jié)構(gòu)下的兩層結(jié)構(gòu)應(yīng)用軟件??蛻舳塑浖话闶怯蓱?yīng)用程序及相應(yīng)的數(shù)據(jù)庫連接程序集結(jié)構(gòu)成,服務(wù)器端軟件一般則都是某種數(shù)據(jù)庫系統(tǒng)。
本系統(tǒng)采用的是由Google推出的基于Linux內(nèi)核的Android操作系統(tǒng),這是一個(gè)嵌入式操作系統(tǒng)平臺(tái),不僅應(yīng)用于智能手機(jī),還可廣泛應(yīng)用于平板電腦以及其他便攜設(shè)備[4]。通過開發(fā)工具Eclipse提供的框架和服務(wù),選取插件組件來設(shè)計(jì)生成開發(fā)環(huán)境。使用Jdbc可以支持展開與MySql數(shù)據(jù)庫建立連接、發(fā)送以及操作數(shù)據(jù)庫的語句并處理結(jié)果等系列進(jìn)程。MySql作為數(shù)據(jù)庫管理工具,是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),使用結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。對(duì)于本系統(tǒng)而言,使用MySql輕量級(jí)數(shù)據(jù)庫管理數(shù)據(jù),是一個(gè)不錯(cuò)的研究選擇。endprint
在此,研究提出數(shù)據(jù)庫連接的實(shí)現(xiàn)過程,也就是在Java開發(fā)中Jdbc連接數(shù)據(jù)庫的關(guān)鍵步驟內(nèi)容可做分述展示如下:
1)加載Jdbc驅(qū)動(dòng)程序。 在連接數(shù)據(jù)庫之前,首先要加載需要連接的數(shù)據(jù)庫的驅(qū)動(dòng)[5~6],這可通過調(diào)用java.lang.Class類的靜態(tài)方法forName(String className)運(yùn)行實(shí)現(xiàn)。成功加載后,會(huì)將Driver類的實(shí)例注冊(cè)到DriverManager類中。
2)定義需要連接的數(shù)據(jù)庫的地址。書寫形式: jdbc:<子協(xié)議>:<子名稱>。
其中,子協(xié)議為數(shù)據(jù)庫驅(qū)動(dòng)程序名或數(shù)據(jù)庫連接機(jī)制的名稱。子名稱則為一種標(biāo)記數(shù)據(jù)庫的方法。
3)與數(shù)據(jù)庫建立連接,對(duì)應(yīng)方法代碼如下:
Connection con=DriverManager.getConnectin(String url, String username, String password )
4)創(chuàng)建一個(gè)Statement,代碼如下:
Statement stmt=con.createStatement() ;
5)聲明并執(zhí)行SQL語句。 Statement接口提供了3種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate和execute。其中,各方法功能可做相關(guān)詳解如下。
① ResultSet executeQuery(String sqlString):執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對(duì)象。
② int executeUpdate(String sqlString):用于執(zhí)行INSERT、UPDATE或 DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等。
③ execute(sqlString):用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語句。
6)處理結(jié)果包含2種情況,可得分析結(jié)果為:
① 執(zhí)行更新返回的是本次操作影響到的記錄數(shù)。
② 執(zhí)行查詢返回的結(jié)果是一個(gè)ResultSet對(duì)象。
7)關(guān)閉Jdbc對(duì)象。 操作順序執(zhí)行后就要把所有使用的Jdbc對(duì)象全都關(guān)閉,以釋放Jdbc資源,關(guān)閉順序和聲明順序相反:關(guān)閉記錄集(ResultSet)、關(guān)閉聲明(Statement)、關(guān)閉連接對(duì)象(Connection)。
3系統(tǒng)模塊的實(shí)現(xiàn)
1)主頁及其頁面結(jié)構(gòu)功能,如圖2所示??梢圆榭磮D書館通知、新書推薦以及近期的熱門搜索。
2)書架,如圖3所示??梢赃M(jìn)行書籍基本情況的查詢,如所在位置以及館藏?cái)?shù)量等。
3)書單,如圖4所示??梢詫?duì)自己的借閱信息進(jìn)行查詢。
4)個(gè)人中心,如圖5所示。主要是顯示用戶的基本信息、密碼以及自習(xí)室占座情況的查詢。
4結(jié)束語
在移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的今天,很多應(yīng)用正在由傳統(tǒng)的PC機(jī)向著智能手機(jī)客戶端陸續(xù)拓展與移動(dòng),這也是信息化趨勢的鮮明特色?;贏ndroid的圖書館管理系統(tǒng)可以更好地滿足讀者的個(gè)性化需求,提高圖書館的服務(wù)水平,同時(shí)又因其靈活性以及方便性必將會(huì)為讀者提供良好的用戶體驗(yàn)。
參考文獻(xiàn):
[1] 李艷國. 基于Android的移動(dòng)終端在智能圖書館中的應(yīng)用[J]. 科技情報(bào)開發(fā)與經(jīng)濟(jì),2012,22(15):23-25.
[2] 薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論 [M] . 北京:高等教育出版社,1991.
[3] 夏幫貴. 基于Android平臺(tái)的圖書館服務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 現(xiàn)代圖書情報(bào)技術(shù),2011(6):85-89.
[4] 百度文庫. Android [EB/OL] . [2011 -03 -01] . http: //baike. baidu. com / view /1241829 .htm .
[5] DUBOIS P. MySQL網(wǎng)絡(luò)數(shù)據(jù)庫指南 [M] . 北京:機(jī)械工業(yè)出版社,2000.
[6] 張斌,高波. Linux網(wǎng)絡(luò)編程 [M] . 北京:清華大學(xué)出版社,2000.endprint