孫華林 夏利青
摘要:介紹了JSon輕量級(jí)數(shù)據(jù)交換格式和Android技術(shù)平臺(tái),分析了圖書(shū)管理系統(tǒng)的功能需求,服務(wù)器端采用MVC模式、移動(dòng)客戶(hù)端基于Android平臺(tái)、采用HttpClient進(jìn)行通信,設(shè)計(jì)了移動(dòng)圖書(shū)管理系統(tǒng)的總體架構(gòu),并詳細(xì)闡述了服務(wù)器端業(yè)務(wù)邏輯層、數(shù)據(jù)訪(fǎng)問(wèn)層的具體實(shí)現(xiàn)及移動(dòng)端 UI界面設(shè)計(jì)。通過(guò)實(shí)踐表明,基于Android平臺(tái)的移動(dòng)圖書(shū)管理系統(tǒng)給用戶(hù)帶來(lái)的更好的體驗(yàn),更加方便、快捷、數(shù)字化地為廣大師生提供了優(yōu)質(zhì)服務(wù)。
關(guān)鍵詞:Android;MVC;Json;HttpClient;圖書(shū)管理系統(tǒng)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)15-0066-03
Abstract: This paper introduces a lightweight JSon data format and Android platform, analyzes the functional requirements of library management system, the server adopts MVC mode, the mobile client adopts Android platform, using HttpClient based communication,designed the overall architecture of mobile library management system, and elaborates the design and Realization of the mobile terminal interface of UI , the logic layer,data access layer. The practice shows that, mobile library management system based on Android platform gives users a better experience, more convenient, fast, digital to provide high quality service for the majority of teachers and students.
Key words: Android; MVC; Json; HttpClient; library management system
近幾年來(lái),國(guó)內(nèi)3G/4G移動(dòng)技術(shù)發(fā)展迅猛,基于移動(dòng)互聯(lián)網(wǎng)平臺(tái)的應(yīng)用越加豐富,智能手機(jī)或Pad等移動(dòng)終端的App應(yīng)用增長(zhǎng)迅速,大量的傳統(tǒng)的web應(yīng)用的部分功能開(kāi)始嘗試向App應(yīng)用轉(zhuǎn)移,運(yùn)行于PC機(jī)的大量的傳統(tǒng)Web應(yīng)用程序或桌面應(yīng)用程序的全部或部分功能,開(kāi)始漸漸地向移動(dòng)互聯(lián)平臺(tái)如智能手機(jī)客戶(hù)端轉(zhuǎn)移。大學(xué)圖書(shū)館作為知識(shí)、技術(shù)及信息的重要傳播載體,在每一次信息技術(shù)變革中都充當(dāng)著重要角色和使命。
在此背景下,高校傳統(tǒng)的圖書(shū)管理系統(tǒng)提供的服務(wù)已跟不上時(shí)代發(fā)展潮流,不能滿(mǎn)足用戶(hù)提出的更高的多樣性及個(gè)性化需求,如隨時(shí)檢索、預(yù)約或掛失圖書(shū)、讀書(shū)交流、圖書(shū)推薦即通過(guò)對(duì)用戶(hù)圖書(shū)借閱等數(shù)據(jù)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)、分析和加工,從中“挖”出用戶(hù)“潛在”的讀書(shū)興趣,并根據(jù)用戶(hù)這些潛在的興趣向用戶(hù)推薦他們可能更加感興趣的圖書(shū),從而幫助用戶(hù)花費(fèi)最少的時(shí)間,找到最合適的書(shū)籍,并推薦給讀者等。這種多樣性、個(gè)性化及在任何時(shí)間、任何地點(diǎn)隨時(shí)可以進(jìn)行讀書(shū)交流的功能是傳統(tǒng)的圖書(shū)管理系統(tǒng)不能比擬和提供的?;谝苿?dòng)互聯(lián)網(wǎng)新技術(shù)新平臺(tái)提升圖書(shū)館的信息服務(wù)能力和服務(wù)效率將是一種嶄新的交互和服務(wù)方式。
1 相關(guān)技術(shù)
1.1 MVC設(shè)計(jì)模式
MVC即模型(Model)-視圖(View)-控制器(Controller)的簡(jiǎn)寫(xiě),是目前一種優(yōu)秀的軟件設(shè)計(jì)模式。模型用來(lái)封裝數(shù)據(jù)邏輯和業(yè)務(wù)邏輯;視圖用來(lái)處理數(shù)據(jù)的顯示;控制器是整個(gè)應(yīng)用的核心,用來(lái)處理用戶(hù)和服務(wù)器之間的交互操作,控制模型和視圖之間的數(shù)據(jù)交換,如從視圖中讀取數(shù)據(jù),控制用戶(hù)輸入,并向模型發(fā)送數(shù)據(jù)。MVC設(shè)計(jì)模式主要用于解決業(yè)務(wù)邏輯代碼、數(shù)據(jù)邏輯代碼及顯示邏輯代碼的分離,在提高代碼重用性的同時(shí),為系統(tǒng)今后的維護(hù)提供了便利。
1.2 Json解析技術(shù)
JSON的英文全稱(chēng)為JavaScript Object Notation,即JavaScript對(duì)象表示法,其的數(shù)據(jù)交換格式是輕量級(jí)的,它采用JavaScript(Standard ECMA-262 3rd Edition - December 1999)語(yǔ)法來(lái)描述數(shù)據(jù)對(duì)象。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,JSON解析器和JSON庫(kù)支持很多高級(jí)編程語(yǔ)言如 C++、 C#、 Java等。類(lèi)似于XML,JSON是一種具有“自我描述性”、可以使用JavaScript進(jìn)行解析、支持AJAX進(jìn)行數(shù)據(jù)傳輸?shù)募兾谋?,容易閱讀和編寫(xiě),這些特點(diǎn)使得JSON成為目前最理想的數(shù)據(jù)解析語(yǔ)言。它類(lèi)似于Map集合的“鍵-值”對(duì)結(jié)構(gòu),也可以將其理解為一個(gè)有序的值的列表集合。
1.3 Android平臺(tái)
Android是由Google(谷歌)公司和手機(jī)開(kāi)放聯(lián)盟(Open Handset Alliance)主導(dǎo)開(kāi)發(fā)的一種基于Linux的操作系統(tǒng),憑借自由及開(kāi)放源代碼的優(yōu)勢(shì),目前被廣泛應(yīng)用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦等終端。自2007年推出以來(lái),經(jīng)過(guò)短短的幾年發(fā)展,Android已成為移動(dòng)終端市場(chǎng)占有率第一的操作系統(tǒng),目前最新最穩(wěn)定的版本為4.4版本,本系統(tǒng)的開(kāi)發(fā)是基于4.2版本。
2 系統(tǒng)分析與設(shè)計(jì)
2.1 系統(tǒng)功能
通過(guò)對(duì)圖書(shū)管理系統(tǒng)進(jìn)行深入詳細(xì)的需求調(diào)研,采用模塊化設(shè)計(jì)思想,將系統(tǒng)分為用戶(hù)端及管理員端。其中用戶(hù)端即學(xué)生端,主要功能有用戶(hù)登錄、圖書(shū)查詢(xún)、圖書(shū)查詢(xún)、圖書(shū)預(yù)約、圖書(shū)掛失、讀書(shū)交流、圖書(shū)推薦等模塊;管理員端主要功能分為用戶(hù)管理、權(quán)限管理、圖書(shū)管理、預(yù)約管理、借閱管理、掛失管理、滯納金管理、綜合查詢(xún)管理、滯納金管理、社區(qū)交流管理、數(shù)據(jù)挖掘及分析統(tǒng)計(jì)等11個(gè)模塊。
其中用戶(hù)管理模塊提供對(duì)用戶(hù)信息等基本操作,包括學(xué)生、教師等信息的添加、修改、刪除等功能,也包括相關(guān)角色的登錄功能;權(quán)限管理模塊主要實(shí)現(xiàn)對(duì)系統(tǒng)的權(quán)限進(jìn)行管理,包括用戶(hù)賬號(hào)的分配、注銷(xiāo),權(quán)限的分配、修改、用戶(hù)密碼重置等功能。
2.2 系統(tǒng)總體架構(gòu)
整個(gè)系統(tǒng)分為服務(wù)器PC端和Android移動(dòng)客戶(hù)端。系統(tǒng)架構(gòu)圖如下圖1所示。
1)服務(wù)器端采用基于MVC設(shè)計(jì)模式的B/S架構(gòu)模式,其中Model層采用JavaBean組件封裝相關(guān)的業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,View視圖層采用JSP+JSTL技術(shù),Control控制器基于Serlet技術(shù)實(shí)現(xiàn)。
2)Android移動(dòng)客戶(hù)端通過(guò)HttpClient和服務(wù)器進(jìn)行通信并訪(fǎng)問(wèn)服務(wù)器端資源,兩端采用輕量級(jí)數(shù)據(jù)交換格式Json技術(shù)進(jìn)行數(shù)據(jù)交換。 HttpClient為Apache開(kāi)源組織提供的用來(lái)在客戶(hù)端向Web站點(diǎn)發(fā)出請(qǐng)求并獲取響應(yīng)的HTTP客戶(hù)端。
3)基于Android集成的HttpClient向服務(wù)器端的Web站點(diǎn)發(fā)送請(qǐng)求并通信的步驟如下:
① 創(chuàng)建HttpClient對(duì)象 new DefultHTTPClient();
② 通過(guò)創(chuàng)建HttpGet或HttpPost對(duì)象想Web端發(fā)送get或post請(qǐng)求;
③ 調(diào)用setParams()方法發(fā)送請(qǐng)求參數(shù);
④ 調(diào)用HttpResponse對(duì)象的execute()方法返回response;
⑤ 獲取HttpEntity對(duì)象,獲取服務(wù)器的響應(yīng)內(nèi)容。
其流程圖如圖2所示。
3 系統(tǒng)實(shí)現(xiàn)與實(shí)現(xiàn)
3.1 服務(wù)器端功能模塊設(shè)計(jì)
服務(wù)器端的主要功能模塊有:用戶(hù)管理、圖書(shū)管理、預(yù)約管理、借閱管理、歸還及掛失管理、滯納金管理、圖書(shū)查詢(xún)、讀書(shū)交流、圖書(shū)推薦等模塊。下面給出讀書(shū)交流及圖書(shū)推薦模塊序列圖如圖3所示。
用戶(hù)輸入要交流信息并向服務(wù)器端發(fā)出請(qǐng)求時(shí),首先調(diào)用validate()方法進(jìn)行客戶(hù)端輸入驗(yàn)證,驗(yàn)證成功后將封裝了讀書(shū)交流信息的note對(duì)象的客戶(hù)端請(qǐng)求提交到服務(wù)器的CommunityServlet,此時(shí)調(diào)用CommunityServiceDao業(yè)務(wù)邏輯層接口的addNoteService()方法實(shí)現(xiàn)業(yè)務(wù)邏輯功能;業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪(fǎng)問(wèn)層CommunityDao接口中的addNoteDao()方法實(shí)現(xiàn)讀書(shū)信息增加功能;此方法會(huì)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)并將返回結(jié)果(1:成功或0:失敗)返回到控制器CommunityServlet;同樣,繼續(xù)調(diào)用業(yè)務(wù)邏輯層的replyService()方法實(shí)現(xiàn)信息回復(fù)功能。圖書(shū)的推薦操作和上述流程類(lèi)似。
3.2 Android UI 界面設(shè)計(jì)
用戶(hù)端App界面主要包括用戶(hù)登錄UI(UserLoginActivity.java)、系統(tǒng)歡迎UI(WelcomeActivity.java)、主界面(UserMainMenuActivity.java)、圖書(shū)查詢(xún)UI、圖書(shū)預(yù)約UI、圖書(shū)掛失UI、讀書(shū)交流UI(ReaderNoteActivity.java)、圖書(shū)推薦UI(BookRecommendActivity.java)等8個(gè)主要UI界面。其中:
1)圖書(shū)查詢(xún)UI包括簡(jiǎn)單查詢(xún)UI(SimpleSelectActivity.java)、高級(jí)圖書(shū)查詢(xún)UI(AdvancedSelectActivity.java)、查詢(xún)結(jié)果UI(SelectResultActivity.java)、查詢(xún)結(jié)果詳細(xì)信息UI(SelectResultDetailActivity.java)等四個(gè)UI。
2)圖書(shū)預(yù)約UI包括圖書(shū)預(yù)約主界面(BookAppointMainActivity.java)、已借圖書(shū)預(yù)約UI(BorrowedBookAppointActivity.java)、個(gè)人預(yù)約圖書(shū)UI(PersonBookAppointActivity.java)。
3)圖書(shū)掛失UI包括圖書(shū)掛失主界面(LossMainActivity.java)、掛失圖書(shū)詳細(xì)UI(LossDetailActivity.java)。
每個(gè)Android UI都對(duì)應(yīng)一個(gè)Activity類(lèi)。這些類(lèi)之間的跳轉(zhuǎn)關(guān)系如下圖4所示。
3.3 系統(tǒng)實(shí)現(xiàn)
1)DAO接口及實(shí)現(xiàn)
基于經(jīng)典的三層架構(gòu),層和層之間采用面向接口的編程模式。本系統(tǒng)的數(shù)據(jù)訪(fǎng)問(wèn)接口都定義在“czmec.cn.server.Dao”包中。系統(tǒng)中主要定義了8個(gè)Dao數(shù)據(jù)訪(fǎng)問(wèn)接口:
① UserDao接口: 主要封裝了用戶(hù)相關(guān)的操作,而本系統(tǒng)有5種用戶(hù)角色,接口可以繼承,基于UserDao接口又定義了TeacherDao、StudentDao、AdminDao三個(gè)接口。這幾個(gè)接口繼承了UserDao接口,分別定義了教師、學(xué)生及系統(tǒng)管理員3類(lèi)人員的具體實(shí)際操作行為。對(duì)應(yīng)的具體實(shí)現(xiàn)類(lèi)分別為T(mén)eacherDaoImpl、StudentDaoImpl和AdminDaoImpl,它們封裝了訪(fǎng)問(wèn)數(shù)據(jù)源的相關(guān)操作。
② BookDao接口:BookDao接口主要定義了圖書(shū)管理的操作,如添加、修改、刪除操作,BookDaoImpl類(lèi)為BookDao接口的具體實(shí)現(xiàn)類(lèi)。
③ AppointBookDao接口:AppointBookDao接口主要定義了圖書(shū)預(yù)約的相關(guān)操作,AppointBookDaoImpl類(lèi)為AppointBookDao接口的具體實(shí)現(xiàn)類(lèi)。
④ BorrowBookDao接口:BorrowBookDao接口主要定義了圖書(shū)借閱的相關(guān)操作,BorrowBookDaoImpl類(lèi)為BorrowBookDao接口的具體實(shí)現(xiàn)類(lèi)。
⑤ CommunityDao接口:CommunityDao接口主要定義了讀書(shū)交流及圖書(shū)推薦的相關(guān)操作,CommunityDaoImpl類(lèi)為CommunityDao接口的具體實(shí)現(xiàn)類(lèi)。
2)業(yè)務(wù)邏輯接口及實(shí)現(xiàn)
業(yè)務(wù)邏輯層在“czmec.cn.server.Service”包中定義了以下7個(gè)接口以及具體實(shí)現(xiàn)類(lèi):
① UserServiceDao接口:UserServiceDao接口主要封裝了用戶(hù)相關(guān)的業(yè)務(wù)操作,而本系統(tǒng)有3種用戶(hù)角色,因此基于UserServiceDao接口又定義了TeacherServiceDao、StudentServiceDao和AdminServiceDao,繼承了UserServiceDao接口,分別定義了教師、學(xué)生以及系統(tǒng)管理員3類(lèi)人員的具體的業(yè)務(wù)操作。這些接口對(duì)應(yīng)的具體實(shí)現(xiàn)類(lèi)分別為T(mén)eacherServiceDaoImpl、 StudentServiceDaoImpl和AdminServiceDaoImpl,它們封裝了具體的業(yè)務(wù)邏輯操作。
② BookServiceDao接口:BookServiceDao接口主要定義了圖書(shū)管理的相關(guān)業(yè)務(wù)邏輯操作,BookServiceDaoImpl類(lèi)為BookServiceDao接口的具體實(shí)現(xiàn)類(lèi)。
③ AppointBookServiceDao接口:AppointBookServiceDao接口主要定義了圖書(shū)預(yù)約管理的相關(guān)業(yè)務(wù)邏輯操作,AppointBookServiceDaoImpl類(lèi)為AppointBookServiceDao接口的具體實(shí)現(xiàn)類(lèi)。
④ BorrowServiceDao接口:BorrowServiceDao接口主要定義了圖書(shū)借閱管理的相關(guān)業(yè)務(wù)邏輯操作,BorrowServiceDaoImpl類(lèi)為BorrowServiceDao接口的具體實(shí)現(xiàn)類(lèi)。
⑤ CommunityServiceDao接口: CommunityServiceDao接口主要定義了讀書(shū)交流及圖書(shū)推薦管理模塊的相關(guān)業(yè)務(wù)邏輯操作,CommunityServiceDaoImpl類(lèi)為CommunityServiceDao接口的具體實(shí)現(xiàn)類(lèi) 。
3)Android UI界面實(shí)現(xiàn)
移動(dòng)圖書(shū)管理系統(tǒng)的客戶(hù)端包括用戶(hù)端和管理員端,涉及到的頁(yè)面共30多個(gè),圖5為手機(jī)客戶(hù)端圖書(shū)查詢(xún)界面。
4 結(jié)束語(yǔ)
基于Android平臺(tái)的移動(dòng)圖書(shū)管理系統(tǒng)的實(shí)現(xiàn)經(jīng)過(guò)測(cè)試,運(yùn)行效果良好,優(yōu)化了圖書(shū)管理及相關(guān)流程,提升了服務(wù)的滿(mǎn)意度,具體表現(xiàn)如下:
1)基于Android平臺(tái)的移動(dòng)圖書(shū)管理系統(tǒng)給用戶(hù)帶來(lái)的更好的體驗(yàn),更加方便、快捷、數(shù)字化地為廣大師生提供了優(yōu)質(zhì)服務(wù)。
2)滿(mǎn)足用戶(hù)提出的更高的多樣性及個(gè)性化需求。隨時(shí)檢索所需要圖書(shū)資源、通過(guò)手機(jī)登錄可以隨時(shí)隨地提前預(yù)約、掛失圖書(shū);隨時(shí)和其他讀者進(jìn)行閱讀交流、發(fā)表圖書(shū)閱讀后的讀后感、向其他讀者推薦好的圖書(shū)資源等。
3)基于MVC模式的靈活、可配置、具有良好的可擴(kuò)展性的移動(dòng)圖書(shū)管理系統(tǒng),大大簡(jiǎn)化了相關(guān)人員對(duì)系統(tǒng)以后的升級(jí)、維護(hù)過(guò)程,減少了維護(hù)成本,提升了服務(wù)及工作效率。
參考文獻(xiàn):
[1] 周劍峰. 基于Android 的移動(dòng)圖書(shū)館設(shè)計(jì)與開(kāi)發(fā)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014(1).
[2] 黃健榮,郭昌言,于蕭榕. 基于Android 系統(tǒng)的圖書(shū)管理的研究與應(yīng)用[J]. 信息技術(shù), 2014(7).
[3] 董濤. 基于Android的移動(dòng)校園客戶(hù)端設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2014(3).
[4] 張錦歌. 基于Android移動(dòng)圖書(shū)館個(gè)性化推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 移動(dòng)技術(shù), 2014(21).
[5] 趙鯤. 基于Android平臺(tái)的圖書(shū)管理系統(tǒng)手機(jī)客戶(hù)端開(kāi)發(fā)[D]. 綿陽(yáng): 西南科技大學(xué), 2013(1).