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