付 兵
(湛江師范學(xué)院基礎(chǔ)教育學(xué)院圖書館,廣東湛江524037)
基于Android的GDRMS移動圖書館信息服務(wù)系統(tǒng)設(shè)計與實現(xiàn)
付兵
(湛江師范學(xué)院基礎(chǔ)教育學(xué)院圖書館,廣東湛江524037)
〔摘要〕隨著無線通信技術(shù)和移動互聯(lián)網(wǎng)技術(shù)的高速發(fā)展、智能手機的日益普及,傳統(tǒng)的基于PC的應(yīng)用已逐漸向智能手機轉(zhuǎn)移。為解決基于SMS和WAP網(wǎng)站的移動圖書館信息服務(wù)所面臨的問題,在研究圖書館現(xiàn)有的金盤非書資料管理系統(tǒng)的功能和實現(xiàn)機制的基礎(chǔ)上,分析系統(tǒng)設(shè)計與實現(xiàn)的技術(shù)思路以及關(guān)鍵技術(shù),開發(fā)基于Android平臺的移動圖書館信息服務(wù)系統(tǒng),并詳細(xì)介紹館藏書目查詢模塊的實現(xiàn)細(xì)節(jié)。本系統(tǒng)可為讀者提供便捷、高效的信息服務(wù),提高圖書館資源的利用率,提升圖書館信息服務(wù)水平。
〔關(guān)鍵詞〕移動圖書館;信息服務(wù)系統(tǒng);Android;金盤非書資料管理系統(tǒng)
金盤非書資料管理系統(tǒng)[1](Gold Disk Resource Management System,GDRMS)是北京金盤鵬圖軟件技術(shù)有限公司圖書館系列軟件產(chǎn)品之一,已被各類型圖書館廣泛采用。GDRMS集傳統(tǒng)OPAC與非書資料(如隨書光盤、磁盤等)管理于一體,方便用戶對圖書館各種資源的管理與利用。
目前已有的移動圖書館信息服務(wù)主要以SMS(Short Message Service)和WAP(Wireless Application Protocol)網(wǎng)站為主[2],越來越多的圖書館已開始提供移動圖書館客戶端。然而,基于SMS的移動圖書館信息服務(wù)存在運行和維護成本高,用戶通過編寫短信訪問服務(wù)比較繁瑣且需支付通信費用等缺點;基于WAP網(wǎng)站的移動圖書館信息服務(wù)存在網(wǎng)絡(luò)數(shù)據(jù)流量大、用戶體驗差等缺點[3]。移動圖書館客戶端很少有圖書館自己開發(fā)的,主要是購買超星、書生等公司開發(fā)的產(chǎn)品,每年需要支付高昂的使用費。本文針對目前移動圖書館信息服務(wù)面臨的問題,在詳細(xì)分析GDRMS的功能和實現(xiàn)機制的基礎(chǔ)上,面向日益普及的智能手機,開發(fā)基于Android平臺的移動圖書館信息服務(wù)系統(tǒng)。
1.1需求分析
隨著智能手機用戶的日益增多,圖書館提供基于智能手機客戶端的移動信息服務(wù)成為一種很好的服務(wù)方式。目前國內(nèi)外一些圖書館已經(jīng)提供移動圖書館手機客戶端,用戶不僅可以通過計算機查詢館藏書目數(shù)據(jù)、查看自己的借閱情況、瀏覽圖書館網(wǎng)站發(fā)布的通知公告等信息,還可以通過手機客戶端來完成。為了順應(yīng)移動網(wǎng)絡(luò)信息時代的發(fā)展趨勢,為讀者提供便捷高效的移動信息服務(wù),圖書館可以在已有的圖書管理系統(tǒng)基礎(chǔ)之上開發(fā)相應(yīng)的移動圖書館客戶端軟件。
Android智能手機憑借其低廉的使用門檻,強大的擴展性,華麗的用戶界面,良好的操作體驗,豐富的第三方軟件,受到用戶的廣泛青睞。Android平臺已成為各種移動客戶端軟件開發(fā)的首選平臺。針對現(xiàn)今移動圖書館的需求及用戶群體情況分析,本文選擇了Android這一平臺,開發(fā)一個移動圖書館信息服務(wù)系統(tǒng)。
通過調(diào)查了解,移動圖書館信息服務(wù)系統(tǒng)需要提供館藏書目查詢、圖書續(xù)借、借閱歷史、超期公告、新書通報、熱門排行、讀者管理、通知公告等用戶常用功能。
1.2設(shè)計思路
1.2.1GDRMS運行機制分析
GDRMS由ASP.NET開發(fā),采用B/S與C/S相結(jié)合的模式。用戶通過B/S模式用瀏覽器對服務(wù)器進行訪問,管理員通過C/S模式用客戶端上傳與管理隨書資料。瀏覽器使用HTTP請求的GET方法或POST方法與服務(wù)器通信,GET方法將需要傳遞的參數(shù)作為URL的一部分向服務(wù)器發(fā)送,POST方法則將參數(shù)作為標(biāo)準(zhǔn)數(shù)據(jù)傳遞給服務(wù)器。瀏覽器向服務(wù)器傳遞的參數(shù)有兩種類型:一種是用戶提交的表單數(shù)據(jù)(如:查詢內(nèi)容、用戶帳號等);另一種是頁面狀態(tài)信息(如:_VIEWSTATE、_EVENTVALIDATION等)。提交請求后,服務(wù)器返回請求結(jié)果并在瀏覽器中顯示。GDRMS的核心功能是館藏書目查詢和用戶登錄管理,系統(tǒng)開發(fā)商提供了館藏書目檢索和讀者登錄的接口用于二次開發(fā)。經(jīng)過測試,館藏書目查詢接口檢索結(jié)果不全,不宜采用,需通過其它方式實現(xiàn);讀者登錄接口可以成功登錄。新書通報、超期公告、熱門排行等功能的運行機制與館藏書目查詢類似,可以通過相似的方法實現(xiàn)。
1.2.2設(shè)計思路
通過對GDRMS運行機制的分析發(fā)現(xiàn),本系統(tǒng)可以采用移動客戶端模擬瀏覽器對GDRMS服務(wù)器進行訪問的方式來實現(xiàn),因而不需要另外增設(shè)服務(wù)器。本系統(tǒng)的核心是HTTP請求的發(fā)送和請求結(jié)果的獲取與解析。HTTP請求的發(fā)送使用HttpClient的GetMethod或PostMethod方法完成,請求結(jié)果為網(wǎng)頁HTML源代碼字符串。具體流程為:用戶觸發(fā)客戶端請求事件;客戶端獲取需要提交的參數(shù),根據(jù)需求選擇GetMethod或PostMethod方法向GDRMS服務(wù)器提交HTTP請求,建立起客戶端與服務(wù)器的連接;通信連接建立后,需要判斷連接的狀態(tài),這里主要有兩種狀態(tài):一是訪問正常,直接獲取請求頁面的源代碼;二是網(wǎng)頁自動重定向,則需要獲取重定向后的網(wǎng)頁源代碼;客戶端獲取源代碼后對其進行解碼并斷開與服務(wù)器的連接;提取有用信息顯示到用戶界面上。客戶端與GDRMS服務(wù)器的數(shù)據(jù)通信模式如圖1所示。
圖1 客戶端與服務(wù)器通信模式圖
本系統(tǒng)主要由手機客戶端和GDRMS服務(wù)器兩個部分組成??蛻舳私⒃贏ndroid操作系統(tǒng)及手機硬件之上。由于本系統(tǒng)在數(shù)據(jù)處理上完全依托GDRMS,因此只需設(shè)計客戶端,服務(wù)器端使用GDRMS服務(wù)器和數(shù)據(jù)庫服務(wù)器。系統(tǒng)總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)總體結(jié)構(gòu)示意圖
系統(tǒng)按照MVC(Model,View,Controller)程序框架原則來設(shè)計,針對本系統(tǒng)抽象出用戶界面層、業(yè)務(wù)邏輯層和數(shù)據(jù)通信層,分層設(shè)計的理念可以降低各個模塊之間的耦合性,明確各個模塊的職責(zé),從而增強系統(tǒng)的擴展性[4]。用戶界面層,對應(yīng)MVC程序框架的View,在本系統(tǒng)中指Android客戶端界面,負(fù)責(zé)給用戶呈現(xiàn)直觀的操作界面,用于接收用戶的請求和顯示請求結(jié)果。數(shù)據(jù)通信層,對應(yīng)MVC程序框架的Controller,作為用戶界面層和業(yè)務(wù)邏輯層之間的紐帶,具體負(fù)責(zé)HTTP連接、組裝數(shù)據(jù)、數(shù)據(jù)解碼等任務(wù)。業(yè)務(wù)邏輯層,對應(yīng)MVC程序框架的Model,包括本系統(tǒng)的各個功能模塊,主要任務(wù)是接收來自用戶界面層的請求,并解析處理數(shù)據(jù)通信層返回的請求結(jié)果。
3.1關(guān)鍵技術(shù)
3.1.1請求參數(shù)的獲取
向服務(wù)器發(fā)送HTTP請求需要提交的參數(shù)可以通過HttpWatch軟件查看。HttpWatch是一個網(wǎng)頁數(shù)據(jù)分析的瀏覽器插件工具,它的主要作用是讓我們更好的了解網(wǎng)頁在通過HTTP協(xié)議請求時網(wǎng)頁數(shù)據(jù)的傳輸和請求情況。它的工作原理是:啟動HttpWatch工具后,當(dāng)我們在打開網(wǎng)頁時,它會同步記錄分析網(wǎng)頁加載的進程,包括HTTP協(xié)議請求的網(wǎng)頁header信息、cookie信息、以GET或POST方式傳遞的數(shù)據(jù)等[5]。HttpWatch顯示網(wǎng)頁狀態(tài)的界面如圖3所示。
圖3 HttpWatch網(wǎng)頁狀態(tài)顯示界面
3.1.2HttpClient
HttpClient是Apache Jakarta Common下的子項目,用來提供最新的、高效的、功能豐富的支持HTTP協(xié)議的客戶端編程工具包[6]。利用HttpClient組件包,可以模擬各類HTTP客戶端(如HTTP/HTTPS連接、Get/Post請求等)訪問服務(wù)器端的全過程,簡化了HTTP客戶端與服務(wù)器端的各種通信開發(fā)過程[7]。本系統(tǒng)通過自定義GetContent類,該類的getResponseByGetMethod和getResponseByPostMethod方法來實現(xiàn)客戶端與服務(wù)器的通信。getResponseByGetMethod方法的部分代碼如下:
getResponseByPostMethod方法比getResponseByGetMethod方法多一個HashMap類型的參數(shù)parmMap用來傳遞Post請求提交的參數(shù)。讀取Post請求參數(shù)的主要代碼如下:
3.1.3網(wǎng)頁自動重定向處理
在GDRMS中有幾處網(wǎng)頁重定向的情況,如從“簡單查詢”頁面到“檢索結(jié)果”頁面。由于PostMethod方法不能自動重定向,需添加處理網(wǎng)頁自動重定向的代碼:
3.2館藏查詢模塊的實現(xiàn)
由于本系統(tǒng)功能模塊比較多,限于篇幅,這里只介紹館藏查詢模塊的實現(xiàn)。館藏查詢模塊的業(yè)務(wù)邏輯如圖4所示,該模塊是本系統(tǒng)的核心,實現(xiàn)了用戶對圖書館館藏書目數(shù)據(jù)的查詢功能,由館藏查詢、查詢結(jié)果和圖書詳細(xì)信息3個界面組成。
圖4 館藏查詢邏輯示意圖
3.2.1館藏查詢
館藏查詢界面由頁面布局文件search.xml和SearchActivity類實現(xiàn),當(dāng)點擊系統(tǒng)首頁(如圖5所示)“館藏查詢”圖標(biāo),進入館藏查詢界面,如圖6所示。
圖5 系統(tǒng)首頁界面圖
圖6 館藏查詢界面示意圖
通過HttpWatch軟件查看館藏查詢請求需要提交的參數(shù)如表1所示。
表1 館藏查詢請求需提交的參數(shù)
用戶輸入檢索內(nèi)容,選擇好檢索類型、檢索模式、排序方式后,點擊“檢索”按鈕會調(diào)用SearchActivity類的Runner方法,該方法建立新線程用來處理查詢請求。該線程首先調(diào)用GetContent類的getResponseByGetMethod方法獲取GDRMS簡單查詢頁面的狀態(tài)信息_VIEWSTATE和_EVENTVALIDATION,然后將所有需要提交的參數(shù)鍵值(key-value)保存到HashMap中,最后調(diào)用GetContent類的getResponseByPostMethod方法獲取檢索結(jié)果頁面源代碼。需要分析源代碼以判斷有無滿足檢索條件的結(jié)果,如果有則將源代碼傳遞給SearchResultActivity類,否則提示沒有滿足查詢條件的記錄。
3.2.2檢索結(jié)果
檢索結(jié)果界面由頁面布局文件searchresult.xml、searchresult_item.xml和SearchResultActivity類實現(xiàn),如圖7所示。
圖7 檢索結(jié)果界面示意圖
SearchResultActivity類接收SearchActivity類傳遞的源代碼并進行解析,分析出檢索結(jié)果總條數(shù)、總頁數(shù)等信息,并將每條記錄的題名、責(zé)任者、出版者、出版年、ISBN、索書號和URL鏈接解析出來保存到數(shù)組里面。每條記錄用ListView控件來顯示,ListView的內(nèi)容由searchresult_item.xml定義,用BookListAdapter將數(shù)組的數(shù)據(jù)綁定到ListView,點擊ListView的任意item進入到圖書詳細(xì)信息界面。點擊頁面跳轉(zhuǎn)按鈕“首頁”、“上頁”、“下頁”、“尾頁”可在不同結(jié)果頁之間切換。
3.2.3圖書詳細(xì)信息
圖書詳細(xì)信息界面由頁面布局文件bookdetial.xml、bookdetial_item.xml和BookDetialActivity類實現(xiàn),如圖8所示。當(dāng)點擊檢索結(jié)果的任意記錄時,BookDetialActivity類首先獲取SearchResultActivity類傳遞來的URL鏈接,然后調(diào)用Get-Content類的getResponseByGetMethod方法獲取頁面源代碼,最后再對源代碼進行分析處理。首先解析出圖書的ISBN、價格、題名責(zé)任項、出版發(fā)行項,然后提取圖書的館藏信息,包括復(fù)本數(shù)、可外借數(shù)、歷史借閱次數(shù)以及每本書的條形碼、索書號、館藏地址、狀態(tài)、流通情況等,最后綁定到相應(yīng)的控件上并顯示出來。
圖8 圖書詳細(xì)信息界面示意圖
依托圖書館現(xiàn)有的GDRMS,在Android平臺上設(shè)計并實現(xiàn)了移動圖書館信息服務(wù)系統(tǒng)。該系統(tǒng)包含館藏書目檢索、用戶信息管理、圖書續(xù)借、查看外借歷史、超期公告、新書通報、熱門排行、通知公告等用戶常用功能。本系統(tǒng)具有較強的實用性和通用性,只要修改客服端的服務(wù)器地址,任何采用GDRMS的圖書館用戶都可以使用本系統(tǒng)。下一步的工作將是進一步完善和豐富系統(tǒng)的功能,以滿足用戶多樣化、個性化的信息需求,為用戶提供更加方便、快捷、高效的信息服務(wù),提高圖書館的信息服務(wù)水平。
參考文獻
[1]金盤非書資料管理系統(tǒng)[EB/OL].http:∥www.goldlib.com.cn/jinpan/production2.asp?ID=12,2015-07-20.
[2]葉莎莎,杜杏葉.國內(nèi)外移動圖書館的應(yīng)用發(fā)展綜述[J].圖書情報工作,2013,(6):141-147.
[3]郭文麗,嚴(yán)潮斌,吳旭.基于Android客戶端的圖書館微服務(wù)研究與實踐[J].圖書情報工作,2013,(8):22-26.
[4]趙國棟.基于Android系統(tǒng)的手機網(wǎng)上商城設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2012.
[5]百度百科.HttpWatch[EB/OL].http:∥baike.baidu.com/view/425789.htm?fr=Aladdin,2015-07-20.
[6]金發(fā)華,陳樟洪.HttpClient入門[EB/OL].http:∥www.ibm. com/developerworks/cn/opensource/os-httpclient,2015-07-20.
[7]HttpClient 4.0.1官方教程[EB/OL].http:∥wenku.baidu.com/view/3722d634b90d6c85ec3ac63c.html,2015-05-20.
(本文責(zé)任編輯:孫國雷)
·信息咨詢與服務(wù)·
Design and Implementation of GDRMS Mobile Library Information Service System Based on Android
Fu Bing
(Library,Basic Education College,Zhanjiang Normal University,Zhanjiang 524037,China)
〔Abstract〕With the rapid development of wireless communication technology and mobile internet technology,the increasing popularity of smart mobile phone,the traditional applications based on PC are transferring to the intelligent mobile phone gradually.To solve the problems of mobile library information service based on SMS and WAP web site,this paper researched the function and realization mechanism of GDRMS which running in our library firstly,and then,analyzed the technical scheme and key technologies of system design and implementation.Finally,the paper developed a mobile library information service system based on android platform;illustrate the implementation details of library bibliographic retrieval.This system could provide convenient and efficient information service for the readers,raise the resource utilization rate,and improve the service level of the library.
〔Key words〕mobile library;information service system;Android;gold disk resource management system
作者簡介:付兵(1983-),男,館員,碩士,研究方向:信息資源建設(shè)、數(shù)字圖書館,發(fā)表論文10余篇。
基金項目:湛江師范學(xué)院基礎(chǔ)教育學(xué)院科研項目“移動圖書館信息服務(wù)系統(tǒng)研究”(項目編號:XM1401)研究成果之一。
收稿日期:2015-10-27
〔中圖分類號〕G250.7
〔文獻標(biāo)識碼〕A
〔文章編號〕1008-0821(2015)12-0060-05
DOI:10.3969/j.issn.1008-0821.2015.12.011