版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 畢業(yè)設計(論文)題目: 基于Android的圖書館服務系統(tǒng)設計與實現(xiàn)湖南理工學院畢業(yè)設計(論文)摘 要 針對現(xiàn)有圖書館手機服務系統(tǒng)的開發(fā)和使用成本高昂、移動數(shù)據(jù)流量消耗大、響應速度慢,不適應移動互聯(lián)網(wǎng)時代的現(xiàn)象。本文開發(fā)了一個基于Android平臺的圖書館移動智能終端系統(tǒng)。該系統(tǒng)利用HTTP通信、條碼掃描、Oracle及MySQL數(shù)據(jù)庫等技術進行開發(fā),為讀者提供基于OPAC檢索的書籍資源檢索功能,方便讀者快速簡單的使用圖書館服務,實現(xiàn)了傳統(tǒng)圖書館服務的移動化和智能化。在關聯(lián)化、云端化和社交化的移動互聯(lián)網(wǎng)服務趨勢下,這款集資源、社交等為一體的該APP將為用戶提供更加便捷,高效的服務。關鍵詞:A
2、ndroid;圖書館;移動互聯(lián)網(wǎng)29 Abstract Development and use of cell phone service costs for existing library system's high, mobile data traffic consumption, slow response, suited to the phenomenon of the mobile Internet era. This paper develops a library based on Android platform for mobile intelligent term
3、inal system. The system uses HTTP communications, bar code scanning, Oracle and MySQL database technology for development, to provide readers with quick and easy to use library services resources based OPAC search function to retrieve the books, allow readers to realize the mobile and traditional li
4、brary services intelligent. In association based, cloud and social trends of mobile Internet services, this set of resources, and social, as one of the APP will provide users with more convenient and efficient services.Key words: Android; Library; Mobile Internet目 錄摘 要IAbstractII 第1章 緒 論11.1研究背景11.2
5、 移動圖書館的發(fā)展優(yōu)勢與分析11.3 本文組織結(jié)構2第2章 相關技術32.1 Android Studio集成開發(fā)環(huán)境32.2 MySQL數(shù)據(jù)庫和SQLite數(shù)據(jù)庫32.3 匯文OPAC系統(tǒng)42.4 C/S結(jié)構42.5 B/S結(jié)構52.6 小結(jié)6第3章 需求分析與概要設計73.1 需求分析73.2 功能概要設計73.3 系統(tǒng)架構83.4 小結(jié)8第4章 系統(tǒng)詳細設計與實現(xiàn)94.1 客戶端設計與實現(xiàn)94.2 服務端設計與實現(xiàn)194.3 系統(tǒng)服務224.4 小結(jié)23第5章 系統(tǒng)測試與優(yōu)化245.1測試245.2綜合優(yōu)化265.3小結(jié)27結(jié) 論28參考文獻29致 謝30湖南理工學院畢業(yè)設計(論文)第1
6、章 緒 論 1.1 研究背景移動互聯(lián)網(wǎng)的飛速發(fā)展,各行各業(yè)都與之靠攏,傳統(tǒng)的服務行業(yè)都在這次浪潮中改革,新型的智能化服務被移動互聯(lián)網(wǎng)所覆蓋。移動通信技術的發(fā)展為高速網(wǎng)上瀏覽提供了基礎,為電子文獻技術的傳播與共享提供了保障,而且圖書館信息的服務在移動信息技術的發(fā)展下也向移動圖書館服務系統(tǒng)的轉(zhuǎn)變,移動圖書館服務系統(tǒng)是圖書館一個新的改革的方向,也是圖書館的未來給予讀者服務、吸引讀者的方向。同時,移動圖書館這門新興服務的發(fā)展給高校圖書館傳統(tǒng)服務帶來沖擊,高校圖書館的工作面臨著新的機遇和挑戰(zhàn)。當智能手機上網(wǎng)成為一大主流的時候,移動圖書館服務將成為圖書館另一個重要的服務方式1。在傳統(tǒng)行業(yè)紛紛轉(zhuǎn)向提供移動互
7、聯(lián)網(wǎng)服務的趨勢下,圖書館需要一款移動智能終端系統(tǒng),集資源、社交等為一體的APP來為用戶提供更加便捷,高效的服務。同時也推廣自己提高話語權,讀者在移動終端(包括平板電腦、手機、電子書閱讀器等)安裝APP應用后,可以快速隨時方便的享受圖書館提供的傳統(tǒng)服務,這樣提高了讀者的效率,也增加了圖書館的用戶。 1.2 移動圖書館的發(fā)展優(yōu)勢與分析伴隨著智能設備的普及,圖書館提供的傳統(tǒng)服務已經(jīng)不能滿足讀者日益增長的各種需求,例如閱讀的社交性、實時性等,圖書館需要進行服務的改革。移動圖書館2是隨著移動互聯(lián)網(wǎng)的發(fā)展而誕生的一個詞,由于移動設備的便攜性以及互聯(lián)網(wǎng)的實時性,從而能夠更方便的為讀者提供更多的服務
8、,讀者通過隨身的移動設備,享受諸如實時了解圖書館信息,查書找書等圖書館服務。隨著智能手機登移動終端設備的普及和移動通信技術的飛速發(fā)展,移動個人數(shù)字圖書館服務對移動終端的要求越來越高,比如硬件配置、操作系統(tǒng)等。需要一個開放性很強的平臺來作為承載體,Android是基于Linux系統(tǒng)的,以移動設備為主要載體的開源操作系統(tǒng),在今天的智能手機市場中,Android系統(tǒng)的份額是最大的。隨著3G、4G技術的發(fā)展,移動互聯(lián)網(wǎng)的時代,對于隨身圖書館服務需求是特別大的。移動圖書館擴大了高校圖書館的服務范圍與服務質(zhì)量,使圖書館的服務不再僅僅局限于圖書館內(nèi),用戶能隨時隨地的享受圖書館提供的各種服務,了解圖書館的最新
9、動態(tài)。移動圖書館能相對于傳統(tǒng)的圖書館服務更好地滿足用戶的個性化需求,同時移動圖書館的發(fā)展會改變高校圖書館的管理模式并提高服務水平,移動圖書館的發(fā)展加速推動了高校圖書館信息資源的共建共享。移動圖書館在移動互聯(lián)網(wǎng)下誕生,其繼承了移動智能設備與互聯(lián)網(wǎng)的優(yōu)勢,擁有大量的用戶與發(fā)展空間。又因為其靈活性與良好的用戶體驗,必將為讀者提供更好的圖書館服務。1.3 本文組織結(jié)構 移動互聯(lián)網(wǎng)的發(fā)展,各種公共服務均因此得到一個新的發(fā)展平臺。本文基于此主要研究了以Android為平臺,以OPAC為主要檢索服務的移動圖書館服務系統(tǒng)設計與實現(xiàn)。論文的主要研究內(nèi)容與結(jié)構安排如下: 第1章,緒論,包含了論文的研究背景以及對移
10、動圖書館發(fā)展的分析。第2章,介紹了系統(tǒng)開發(fā)過程中使用的關鍵技術及相關的準備知識。第3章,對系統(tǒng)的架構以及各個功能模塊進行了概括介紹。第4章,具體介紹了系統(tǒng)的設計與實現(xiàn),包括客戶端、服務端的設計與實現(xiàn),數(shù)據(jù)庫的設計與優(yōu)化,系統(tǒng)服務的實現(xiàn)。第5章是系統(tǒng)測試和綜合優(yōu)化的實現(xiàn)過程,保證最好的用戶體驗。結(jié)論部分,包括本文的展望與總結(jié)。第2章 相關技術 2.1 Android Studio集成開發(fā)環(huán)境Android Studio是一個Android開發(fā)環(huán)境,基IntelliJIDEA,由Google公司推出。類似Eclipse ADT,Android Studio提供了集成的Android 開發(fā)工具用于開
11、發(fā)和調(diào)試。利用Android Studio,開發(fā)者能夠開發(fā)眾多硬件平臺如手機、TV、手表、Glass等的Android應用程序。本系統(tǒng)客戶端的開發(fā)中,采用的版本是Android Studio 1.1.0。Android Studio基于IntelliJIDEA開發(fā),它在IntelliJIDEA的基礎上,又針對Android應用程序開發(fā)為開發(fā)組提供了許多特色的功能,使開發(fā)人員能夠快速創(chuàng)建高質(zhì)量、高性能、高穩(wěn)定性以及高用戶體驗的Android應用程序。使用Android Studio開發(fā)的應用程序,具有快速創(chuàng)建、安全高效和易于管理等優(yōu)點。Android Studio解決了Android應用開發(fā)中常
12、見的一些問題,首先解決的一個問題是多分辨率適配。在大量的Android設備中,大量不同尺寸的屏幕和分辨率一直是開發(fā)者開發(fā)過程中適配的一個惱人的問題,使用Android Studio,開發(fā)者可以輕松方便為自己的應用適配各種不同分辨率的屏幕;同時Android Studio還解決全球化語言的解決方案,多語言版本、快速翻譯都讓開發(fā)者更輕松的進行全球開發(fā)環(huán)境;Android Studio還提供收入記錄功能;最后提供的Beta Testing,可以讓開發(fā)者很方便試運行應用。相比于其他的集成開發(fā)環(huán)境,采用Android Studio開發(fā)的應用程序具有如下幾個明顯優(yōu)勢: 1) 基于Gradle3的構建支持;
13、2) Android專屬的重構和快速修復BUG;3) 提示工具方便顯示可用性、捕獲性能、版本兼容性等問題;4) 支持ProGuard和應用簽名;5) 提供使用向?qū)砩沙S玫?Android 應用設計和組件模板;6) 提供強大的布局編輯器,輕松的拖拉 UI 控件到布局上就能進行效果預覽。2.2 MySQL數(shù)據(jù)庫和SQLite數(shù)據(jù)庫MySQL4是一個開源的關系型數(shù)據(jù)庫管理系統(tǒng),由MySQL AB公司開發(fā),目前由Oracle公司管理。MySQL是目前最流行的關系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應用軟件開發(fā)中方面是最好的RDBMS (Relational Database Management Sys
14、tem),關系數(shù)據(jù)庫管理系統(tǒng))應用軟件。MySQL將不同的數(shù)據(jù)分別保存在不同的表中,而不是將所有數(shù)據(jù)放在一個相同的倉庫內(nèi),這樣就增加了速度并提高了使用的靈活性。MySQL使用標準SQL語言用于訪問數(shù)據(jù)庫。MySQL軟件是開源的,所以采用了兩種授權使用的政策,MySQL分為普通社區(qū)版和商業(yè)版,因為其速度快、體積小、總體使用成本低,尤其是開放源代碼這一特性,很多系統(tǒng)都是用它作為數(shù)據(jù)存放的數(shù)據(jù)庫。與 Oracle、DB2、SQL Server等大型數(shù)據(jù)庫相比,MySQL 肯定也有自己的缺點,對于中小型企業(yè)和個人使用者來說,MySQL提供的功能已經(jīng)足夠了,最關鍵是 MySQL是開放源碼的軟件,它提供了
15、授權使用政策是使用者能降低總體擁有成本。由于性能卓越,免費等特點,它與同樣開源的PHP、Linux和Apache可組成非常好的開發(fā)環(huán)境。SQLite5,是一款體積輕小的數(shù)據(jù)庫,常用于嵌入式設備中。遵守ACID的關系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公共項目。因為它的設計目標就是針對嵌入式產(chǎn)品,所以目前在嵌入式產(chǎn)品中使用廣泛,它占用資源非常的低,只需要幾百K的內(nèi)存在嵌入式設備中就夠了。它是跨平臺的一個數(shù)據(jù)庫,支持Windows/Linux/Unix等主流的操作系統(tǒng),同時能夠跟類似C+、C#、PHP、Java等編程語言相結(jié)合使用,非常方便。另有ODB
16、C接口,比起MySQL、PostgreSQL這兩款開源的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。2.3 匯文OPAC系統(tǒng)匯文OPAC系統(tǒng)是基于OPAC檢索的一款圖書管理系統(tǒng)。移動互聯(lián)采用Client/Server、Browse/Server體系結(jié)構,運用中間件技術,創(chuàng)建了開放的、友好的、創(chuàng)新的、易擴展的、基于圖書館文獻資源共享和文獻服務共享的分布式應用軟件系統(tǒng)。該系統(tǒng)被大多數(shù)高校圖書館使用,其特點如下:1) 支持多種操作系統(tǒng)平臺。如Windows 2003,各種Linux版本,Solaris,AIX, HP-UNIX,SCO UnixWare等。2) 采用大型關系型數(shù)據(jù)庫Oracle作為數(shù)
17、據(jù)存儲服務平臺。 3) 支持TCP/IP、NetBEUI等多種通訊協(xié)議。2.4 C/S結(jié)構C/S 結(jié)構,客戶機和服務器結(jié)構。經(jīng)常我們使用的只能設備上的大多數(shù)應用就屬于C/S結(jié)構,移動應用屬于客戶端,遠程服務器屬于服務端。C/S結(jié)構是一種常見的軟件系統(tǒng)體系結(jié)構,使用C/S結(jié)構可以充分發(fā)揮客戶端和服務端的硬件環(huán)境,任務可以通過合理分配,使分配后的任務通過客戶端和服務端來實現(xiàn),大大降低了系統(tǒng)的通訊開銷,目前幾乎所有的智能設備上運行的軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構。傳統(tǒng)的C/S體系結(jié)構雖然是開發(fā)的模式,但是在客戶端和服務端都需要特定的軟件系統(tǒng)來維持,使整個系統(tǒng)得以運行。C/S結(jié)構
18、能充分發(fā)揮客戶端的處理能力,再客戶端將很多工作做完后,再提交給服務器處理,這樣對于移動互聯(lián)網(wǎng)下的通信是很有優(yōu)勢的。C/S 結(jié)構采用“功能分布”原則,計算機應用的一個任務被分解成了多個子任務分別取執(zhí)行,由多臺計算機分工完成??蛻舳送瓿蓴?shù)據(jù)采集處理,數(shù)據(jù)表示和與用戶交互的一些接口的功能;服務器端需要完成數(shù)據(jù)庫的增刪查改等相關的數(shù)據(jù)庫核心功能??蛻舭l(fā)起服務請求、服務端處理客戶端請求并提供服務的處理方式是一種新型的計算機應用模式。C/S結(jié)構中,客戶端和服務端相隔通常很遠,客戶端程序的任務是向服務端發(fā)起請求,再將服務端程序返回的結(jié)果以特定的形式顯示給用戶;服務端程序的任務是接收客戶程序提出的服務請求,并
19、對請求進行相應的處理(常見的就是數(shù)據(jù)庫操作),再將結(jié)果通過特定的數(shù)據(jù)格式返回給客戶程序處理。對應的優(yōu)點具體表現(xiàn)在以下兩點:1) 應用服務器運行數(shù)據(jù)負荷較輕;2) 數(shù)據(jù)的儲存管理功能較為透明。2.5 B/S結(jié)構B/S結(jié)構是WEB服務興起后的一種網(wǎng)絡結(jié)構模式,WEB瀏覽器是客戶端獲取信息服務的最主要的應用軟件。Browser/Server,瀏覽器/服務器模式將客戶端所有的應用統(tǒng)一成了瀏覽器這門軟件,開發(fā)者只需要專注于系統(tǒng)功能實現(xiàn)核心部分集中到服務器上,大大簡化了程序的開發(fā)、維護和使用的一些過程??蛻舳税惭b瀏覽器軟件后,如Netscape Navigator或Internet Explorer瀏覽器
20、,服務器安裝SQL Server、Oracle、MySQL等數(shù)據(jù)庫,通過服務器軟件和服務端應用程序,客戶端就能通過安裝的瀏覽器軟件進行信息獲取。瀏覽器軟件通過與Web Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互。由于Client/Server結(jié)構開發(fā)、使用過程中存在問題,因此人們又在它原有的基礎上提出了一種具有三層模式(3-Tier)的應用系統(tǒng)結(jié)構瀏覽器/服務器(Browser/Server)結(jié)構。Browser/Server結(jié)構的發(fā)展是伴隨著Internet的興起與發(fā)展才發(fā)展起來的,更是對Client/Server結(jié)構的一種改進。從某些使用程度與方便性上來講,B/S模式是由于C/S模式的。不過從本質(zhì)
21、上說,Browser/Server結(jié)構也是一種Client/Server結(jié)構,它可看作是一種由傳統(tǒng)的二層模式Client/Server結(jié)構發(fā)展而來的三層模式Client/Server結(jié)構在Web上應用的特例。隨著Web瀏覽器技術的不斷發(fā)展與成熟,Browser/Server結(jié)構也得到了很大的發(fā)展?,F(xiàn)在隨著瀏覽器的多種腳本語言和ActiveX技術發(fā)展,用一個簡單的瀏覽器軟件就能實現(xiàn)原來需要客戶端安裝的專用軟件才能實現(xiàn)的強大功能,同時節(jié)省了開發(fā)者的開發(fā)成本。B/S結(jié)構最突出的優(yōu)點是只要有一臺能上網(wǎng)的設備就能使用服務端的服務,而不用安裝任何專門的軟件,客戶端零安裝、零維護。系統(tǒng)也非常容易進行擴展。B
22、/S結(jié)構的使用越來越多,隨著AJAX6技術的發(fā)展,B/S結(jié)構的程序也能在客戶端電腦上進行部分功能是我處理,類似C/S結(jié)構。減輕了服務器的負擔;也增加了與用戶交互性,能進行網(wǎng)頁內(nèi)容的局部實時更新。B/S和C/S并沒有本質(zhì)的區(qū)別。B/S基于HTTP協(xié)議的一種C/S架構,是特殊的C/S架構。B/S 結(jié)構的優(yōu)點如下:1) 分布性操作,可以隨時隨地進行類似C/S的信息查詢、瀏覽等操作;2) 業(yè)務擴展簡單方便,通過增加網(wǎng)頁即可增加服務器功能;3) 開發(fā)和維護簡單方便,只要在服務端進行相關程序的編寫操作,就能實現(xiàn)所有用戶的同步更新;4) 開發(fā)簡單,共享性強。2.6 小結(jié)本章介紹了整個系統(tǒng)開發(fā)前的知識準備與開
23、發(fā)過程中涉及的一些關鍵技術。主要包括Android Studio集成開發(fā)環(huán)境、數(shù)據(jù)庫、OPAC系統(tǒng)介紹等內(nèi)容,最后也對系統(tǒng)結(jié)構作了簡要說明。第3章 需求分析與概要設計 3.1 需求分析系統(tǒng)整體采用C/S結(jié)構開發(fā),擁有開發(fā)過程靈活,運行效率高,技術也很成熟等特點??蛻舳碎_發(fā)語言選擇JAVA,JAVA是一種設計非常優(yōu)秀的面向?qū)ο缶幊陶Z言,靈活強大。服務端使用PHP編寫,PHP是一門輕巧簡單的服務端腳本語言,通過和Apache服務器,MySQL數(shù)據(jù)庫一起使用,更能體現(xiàn)出其優(yōu)勢及開發(fā)效率??蛻舳碎_發(fā)工具選擇Android Studio,服務端開發(fā)工具選擇Zend Studio,兩者都是使用廣泛的集成開
24、發(fā)環(huán)境。服務端,在匯文OPAC系統(tǒng)的基礎上編寫圖書信息接口,提高開發(fā)效率。3.2 功能概要設計系統(tǒng)將原本基于WEB圖書館服務轉(zhuǎn)移到Android手機上,用戶通過Android手機就能夠使用所有的原本W(wǎng)EB圖書館提供的服務,并針對移動設備提供了更多有特色的功能。系統(tǒng)的主要功能模塊如下:1) OPAC檢索:圖書館書籍檢索。2) 掃碼服務:通過掃一掃功能,體驗快速獲取圖書館書籍信息、續(xù)借圖書、推薦圖書等眾多服務。3) 新聞公告:為讀者帶來最新的圖書館新聞公告。4) 我的圖書館:個人圖書館模塊,提供讀者信息查詢、借閱查詢、違章記錄查詢等眾多個人信息服務。5) 認識圖書館:帶領新生快速認識圖書館,使用圖
25、書館。6) 資源動態(tài):提供圖書館講座、數(shù)字資源等信息。7) 我的名片:社交模塊,每個讀者擁有自己唯一一張圖書館名片,包括了讀者入校以來在圖書館的一些記錄。8) 設置模塊:提供客戶端APP設置操作。9) 登錄模塊:用戶需要登錄后才能使用APP的主要功能。10) 幫助模塊:提供圖書館服務系統(tǒng)常見的問題與解答,用戶自己的反饋回復也在該模塊中體現(xiàn)。11) 意見反饋模塊:為了提高用戶體驗,用戶可以將遇到的問題或者對圖書館服務的意見通過使用該模塊進行反饋。12) 其它功能模塊:包含一些常用的小功能,如推薦圖書、座位預約、圖書館書籍分類查閱等。3.3 系統(tǒng)架構系統(tǒng)主要模式為Client/Server模式,共
26、包含三層體系結(jié)構,分別為客戶端、服務端和數(shù)據(jù)庫。1) 客戶端:基于Android平臺,使用HTTP請求及Socket與服務器進行通信,HTTP請求簡化了開發(fā)過程中的繁瑣性,Socket方式編程又保證了數(shù)據(jù)的安全性與持久性,將兩者結(jié)合在一起以獲得更好的效果與用戶體驗。使用客戶端獲取外部信息,例如手機的相機獲取書本條碼信息,并對信息進行相應的處理??蛻舳颂峁┝艘粋€友好的可視化操作界面,良好的交互,帶給用戶最好的體驗。2) 服務端:解析所有客戶端發(fā)送的請求,使用PHP應用程序操作數(shù)據(jù)庫。服務端上運行著匯文OPAC系統(tǒng)用于提供OPAC檢索相關服務,基于匯文OPAC系統(tǒng)的Oracle數(shù)據(jù)庫編寫客戶端需要
27、的API。作為客戶端與數(shù)據(jù)庫之間的橋梁,保證了并發(fā)處理多用戶請求以及數(shù)據(jù)的完整性。3) 數(shù)據(jù)庫:數(shù)據(jù)庫服務器。接受服務端程序的SQL請求對數(shù)據(jù)庫本身進行操作,實現(xiàn)數(shù)據(jù)的檢索與存儲。系統(tǒng)使用MySQL數(shù)據(jù)庫進行數(shù)據(jù)存儲??蛻舳耸褂肧QLite數(shù)據(jù)庫進行數(shù)據(jù)存儲。Client/Server結(jié)構的系統(tǒng)中,用戶可以通過客戶端程序向分布在網(wǎng)絡上的服務器發(fā)出請求,服務器通過服務端程序?qū)蛻舳税l(fā)起的請求進行處理并對數(shù)據(jù)庫操作,再將操作結(jié)果返回到客戶端。系統(tǒng)架構如圖3.1所示。服務端匯文OPAC系統(tǒng) 客戶端 HTTP/SOCKET 數(shù)據(jù)庫 HTTP/SOCKET圖3.1 系統(tǒng)架構圖3.4 小結(jié)本章首先進行了系
28、統(tǒng)需求分析,重點對技術可行性做了分析。根據(jù)系統(tǒng)分析得到整個系統(tǒng)的功能概要設計,再由功能概要設計了系統(tǒng)架構圖,主要包括客戶端、服務端和數(shù)據(jù)庫三部分,以及它們之間的通信方式。第4章 系統(tǒng)詳細設計與實現(xiàn) 本章主要介紹了系統(tǒng)的詳細設計與實現(xiàn)過程。系統(tǒng)主要包括客戶端模塊、服務端模塊以及系統(tǒng)服務模塊。這三個模塊相對獨立,通過模塊之間的互相協(xié)作共同為用戶提供圖書館的服務。4.1 客戶端設計與實現(xiàn)客戶端基于Android平臺開發(fā),系統(tǒng)要求Android2.3及以上??蛻舳酥饕捎肅/S結(jié)構開發(fā),但在C/S結(jié)構內(nèi),又嵌套了一層B/S結(jié)構,即部分功能使用B/S結(jié)構開發(fā),包括新聞公告模塊、資源動態(tài)、幫助模塊均使用B
29、/S結(jié)構開發(fā)。系統(tǒng)接入圖書館數(shù)據(jù)庫,所有用戶需要登錄后才能使用所有功能。系統(tǒng)還提供免登錄功能,用戶在登錄之日后七天內(nèi)可以不用重復驗證身份而直接使用系統(tǒng)提供的服務。該客戶端面向圖書館服務的全體師生提供服務。部分模塊(如“認識圖書館”模塊)帶有緩存功能(第一次客戶端主動從服務端請求加載數(shù)據(jù),數(shù)據(jù)將持久化存儲在本地),以節(jié)省用戶流量,或在沒有網(wǎng)絡的環(huán)境下讀者仍能獲取這些信息。如讀者需要更新,可自行主動更新數(shù)據(jù)。業(yè)務流程圖如4.1所示。登錄客戶端主功能主模塊OPAC檢索認識圖書館個人圖書館密碼管理啟動APP登錄頁面 初次啟動初始化 失敗緩存 忘記密碼 成功(一周內(nèi)自動登錄)圖4.1 客戶端功能模塊圖客
30、戶端整體框架下包含以下若干個功能模塊,分別為:認識圖書館、OPAC檢索、掃碼服務、新聞公告、資源動態(tài)、我的名片、設置、幫助、意見反饋、密碼管理、其它功能和登錄12個大功能模塊,每個功能模塊下包含若干小的功能。功能模塊圖如圖4.2所示。認識圖書館資源動態(tài)OPAC檢索掃碼服務新聞公告基于Android的圖書館服務系統(tǒng)客戶端功能模塊圖用戶登錄模塊我的名片設置模塊幫助模塊意見反饋模塊其它功能密碼管理圖4.2 客戶端功能模塊圖程序界面與程序邏輯分離開,遵循MVC開發(fā)模式。1) 程序啟動界面和用戶登錄模塊,用戶在此模塊可以使用修改密碼、登錄、了解圖書館等功能。在系統(tǒng)UI設計中,對一些與用戶交互的地方進行了
31、簡單驗證,如在登錄頁面中,由用戶輸入一卡通號碼和密碼,必須保證所有的用戶必填的信息都填寫正確之后才能提交至服務器請求驗證,以防止惡意提交。在客戶端本地,利用正則表達式過濾掉一些非法的可能是SQL注入7的字符,通過本地的驗證后,客戶端才會向服務端發(fā)起驗證請求。服務端通過請求所帶的數(shù)據(jù)與數(shù)據(jù)庫進行匹配,服務端返回JSON格式數(shù)據(jù),客戶端解析JSON8格式數(shù)據(jù),驗證成功,客戶端跳轉(zhuǎn)至主模塊界面,否則提示對應的錯誤。運行如圖4.3所示:圖4.3程序啟動界面和用戶登錄頁面圖2) 程序主模塊。該模塊是所有子模塊的入口,通過主模塊能進入客戶端程序各個子模塊。該頁面主要使用Android SDK中提供的Vie
32、wPager實現(xiàn)。運行如圖4.4所示:圖4.4程序主頁面圖3) OPAC書目檢索模塊,用戶可以使用資源、文獻和書籍檢索功能,用戶可直接輸入書名檢索或根據(jù)條件檢索。檢索過程描述如下:(1) 檢索過程由客戶端發(fā)起,客戶端通過HTTP請求,向服務端請求所需要的信息,請求信息中包含了客戶端當前檢索的條件;(2) 服務端接收到客戶端的檢索請求,執(zhí)行數(shù)據(jù)庫查詢,將檢索到的數(shù)據(jù)通過JSON格式返還給客戶端;(3) 客戶端收到服務端返還的JSON格式數(shù)據(jù),解析并顯示。檢索過程如圖4.5所示:客戶端 HTTP請求 JSON格式數(shù)據(jù)客戶端服務端 HTTP請求 JSON格式數(shù)據(jù) HTTP請求 JSON格式數(shù)據(jù)圖4.
33、5 OPAC檢索過程圖檢索運行如圖4.6所示:圖4.6 OPAC書目檢索頁面圖4) 書籍列表頁與詳細信息頁,此頁面展示了檢索得到的書籍列表和每本書籍的詳細信息,包括館藏信息、查閱信息、書籍狀態(tài)、書籍出版信息、館藏地、還書地點等。運行如圖4.7所示:圖4.7 書籍列表及書籍詳情圖5) 圖書館新聞公告模塊,用戶可以查看圖書館最新的圖書館新聞公告。該模塊基于B/S結(jié)構開發(fā),類似于WEB開發(fā)。步驟描述如下:(1) 通過客戶端APP內(nèi)置的基于WebKit9的瀏覽器,使用AJAX對象異步向服務端請求數(shù)據(jù);(2) 服務端處理請求并進行查詢操作,并返回查詢后得到的數(shù)據(jù);(3) 客戶端對返回的數(shù)據(jù)進行顯示。運行
34、如圖4.8所示:圖4.8 新聞公告頁面圖6) 掃碼模塊,該模塊提供條碼、二維碼掃描功能。用戶可以輕松進行書籍掃碼續(xù)借、掃碼薦購、檢索等服務??蛻舳耸褂肸Xing庫10編碼和解碼。掃碼流程如下:(1) 客戶端程序調(diào)用手機攝像頭,進行二維碼或條形碼圖像資源獲取;(2) 通過ZXing庫對圖像資源解碼;(3) 將解碼后得到的條碼或二維碼信息通過HTTP請求發(fā)送到服務端;(4) 服務端根據(jù)接收到的請求類別分別進行書籍續(xù)借、檢索、薦購等操作,并將操作結(jié)果通過JSON格式數(shù)據(jù)返還給客戶端;(5) 客戶端解析請求返回數(shù)據(jù),并解析,根據(jù)結(jié)果做相應的操作。掃碼流程圖如圖4.9所示:客戶端ZXing攝像頭 調(diào)用服
35、務端 圖像 HTTP請求 JSON格式數(shù)據(jù)圖4.9 掃碼流程圖運行如圖4.10所示圖4.10 掃碼模塊頁面圖7) 幫助模塊,用戶在此模塊可以瀏覽使用圖書館服務的常見問題,以及自己的反饋的回復信息等。此模塊使用同新聞公告模塊同樣的技術實現(xiàn),使用B/S結(jié)構開發(fā)。運行如圖4.11所示:圖4.11 幫助模塊頁面圖8) 設置模塊,此模塊提供客戶端APP相關設置選項,包括是否接送消息推送、是否接收提醒、修改密碼等功能。設置過程中,程序會根據(jù)用戶的操作對客戶端APP的配置信息進行對應的修改,以保證全局生效和持久化。運行如圖4.12所示:圖4.12 設置模塊頁面圖9) 我的圖書館模塊,用戶通過該模塊,可以查閱
36、當前借閱、歷史借閱、違章記錄、薦購歷史、借閱歷史、預約到書等信息。并可對當前借閱書籍進行續(xù)借等操作??蛻舳薝I設計方面對常用的控件進行了自定義編寫和封裝。部分代碼如下:NewProgressDialog.java,自定義封裝的ProgressDialog。public class NewProgressDialog extends ProgressDialog public NewProgressDialog(Context context)super(context);public NewProgressDialog(Context context, int theme)super(cont
37、ext, theme);public NewProgressDialog(Context context, int theme, String msg)super(context, theme);this.setCanceledOnTouchOutside(false);this.setMessage(msg); 對代碼中常用的對象模型進行封裝。部分代碼如下:User.java,用戶對象模型。public class User private String mUserName;private String mUserCid; private String mUserPwd;private St
38、ring mUserDepartment;private String mUserDevice; public void setUserCid(String cid)this.mUserCid = cid;public void setUserPwd(String pwd)this.mUserPwd = pwd;public void setUserDep(String dep)this.mUserDepartment = dep;public void setUserName(String name)this.mUserName = name;public void setUserDevic
39、e(String device)this.mUserDevice = device;public String getUserCid()return this.mUserCid;public String getUserPwd()return this.mUserPwd;public String getUserDep()return this.mUserDepartment;public String getUserName()return this.mUserName;public String gerUserDevice()return this.mUserDevice;客戶端持久化存儲
40、實現(xiàn)方式,使用SQLite數(shù)據(jù)庫和本地文件進行數(shù)據(jù)持久化存儲。通過對常用的操作類進行封裝,實現(xiàn)代碼的模塊化,增強代碼的復用性。部分封裝好的工具類如下所示:1) SqliteUtil.java,操作SQLite數(shù)據(jù)庫,部分方法如下。public boolean insert(String table, ArrayList<Object> value)方法用于向本地數(shù)據(jù)庫增加一條記錄。public boolean update(String table, ArrayList<Object> value, String whereClause)方法用于更新數(shù)據(jù)庫中的記錄。pu
41、blic boolean delete(String table, String whereClause)方法用于刪除數(shù)據(jù)庫中的一條記錄。public Cursor query(String table, String columnName, String whereClause, String orderWhat, int orderWay, int limitCase)方法用于查詢數(shù)據(jù)庫中的記錄。public void onCloseDB()方法用于關閉數(shù)據(jù)庫。2) NetWorkInfo.java,封裝客戶端網(wǎng)絡監(jiān)測相關方法,部分方法如下。public static boolean is
42、NetWorkConnected(Context context)用于判斷當前網(wǎng)絡是否連接。public static boolean isWifiConnected(Context context)方法判斷當前WIFI是否連接。public static boolean isMobileConnected(Context context)方法判斷當前移動數(shù)據(jù)網(wǎng)絡是否連接。public static int getConnectedType(Context context)方法獲取當前網(wǎng)絡的類型。3) HttpOperation.java,一個通用的HTTP請求操作類,部分方法如下。publi
43、c boolean setHttpRequest(ArrayList<NameValuePair> postValue)用于設置HTTP請求并發(fā)送請求方法。public boolean sendGetRequest()方法用于發(fā)送GET請求。public boolean sendPostRequest(ArrayList<NameValuePair> valuePairs)方法發(fā)送POST請求。4) FileOperation.java,用于本地文件的I/O操作,部分方法如下。public static boolean writeFile(Context context
44、,String db_name, String pathName,String fileName, String text, int where, Handler handler)方法用于寫文件操作。public static String readFile(Context context,String db_name, String pathName, String fileName, int where,Handler handler)方法用于讀文件操作。public static ArrayList<String> getPackagePath(Context context
45、, String db_name)方法用于獲取當前程序所在的相關路徑。5) ParseData.java,用于解析JSON格式和XML格式的數(shù)據(jù),部分方法如下。public String parseGeneralData(Context context, boolean isFromFile, int where, String relativePath, String parseStr, String regRule)方法用于解析普通的格式的數(shù)據(jù),可以指定一個解析正則表達式規(guī)則。public ArrayList<ArrayList<String>> parseJson
46、Data(String jsonName, String jsonObject, String keys)方法用于解析JSON格式數(shù)據(jù)。public ArrayList<ArrayList<String>> parseXmlDada(String xmlObject)用于解析XML格式數(shù)據(jù)。public String parseJSONArraytoString(JSONArray arr)方法將JSON數(shù)組解析成字符串。4.2 服務端設計與實現(xiàn)4.2.1服務端腳本服務端應用程序使用PHP編寫,使用Apache作為Web服務器。為了提高代碼的復用性與安全性,使用面向?qū)ο?/p>
47、方式編程,抽象出常用的方法。1) 用戶通用類:class Userprivate $cid; /登錄名private $pwd; /登錄密碼private $con; /驗證狀態(tài)public function _construct($cid, $pwd, $obj);public function verify($cid, $pwd);public function getCid();public function getPwd();public function getCon();關于以上類中的方法說明如下:public function _construct($cid, $pwd, $ob
48、j)是類的構造方法。public function verify($cid, $pwd)方法用于驗證用戶合法性,需要要戶名以及密碼兩個參數(shù),返回true或false。public function getCid()方法用于獲取當前用戶對象的一卡通號碼。public function getPwd()方法用于獲取當前用戶對象經(jīng)過加密的密碼。public function getCon()方法用于獲取當前用戶對象驗證狀態(tài),通過系統(tǒng)驗證返回true,否則返回false。2) 數(shù)據(jù)庫操作通用類常用方法: public function connect($host, $user, $pwd, $dbna
49、me, $pconnect ,$charset)方法用于連接數(shù)據(jù)庫。public function query($sql)方法用來執(zhí)行不帶參數(shù)的存儲過程。public function insert($table,$array)方法用于增加一條記錄。public function update( $table,$array,$condition)方法用于更新一條記錄。public function delete( $table,$condition)方法用于刪除一條記錄。public function fetch_array($query, $result_type = MYSQL_ASSOC
50、)方法用于返回結(jié)果集。 public function num_rows($results)方法用于獲取記錄條數(shù)。4.2.2數(shù)據(jù)庫設計一個系統(tǒng)數(shù)據(jù)庫設計的好壞直接決定了系統(tǒng)的性能,本系統(tǒng)在使用階段將會有大量用戶同時訪問數(shù)據(jù)庫的情況,因而數(shù)據(jù)庫設計顯得尤為重要。本系統(tǒng)以匯文OPAC系統(tǒng)為基礎,采用MySQL數(shù)據(jù)庫開發(fā),具有高效、方便、快捷等特性。就本系統(tǒng)對數(shù)據(jù)的需求而言,MySQL可以簡化很多效率方面的設計,因而可以把更多的精力放在數(shù)據(jù)庫的邏輯設計方面。本系統(tǒng)部分數(shù)據(jù)表如下:圖書館導航信息表記錄了學校圖書館以及書庫的基本信息,如圖書館編號、樓層編號、借閱地點、藏書類型等。表中字段如表1所示:表1
51、 圖書館導航信息表(libguide)字段名中文描述類型長度可否為空是否為主鍵idIDInt11否是gwhichlib圖書館編號Varchar1否是glendplace借閱地點Varchar2否是gbooktype藏書類型Text否否gfloorpic樓層導航圖urlText否否gfloor樓層編號Text否否常見問題表記錄了使用圖書館服務中經(jīng)常會遇見的問題以及解決方式等信息,包括問題類型、問題詳情、問題答案、最新答案更新時間等。表中字段如表2所示:表2 常見問題表(faq)字段名中文描述類型長度可否為空是否為主鍵idIDInt11否是f_type問題類型Varchar1否是f_questio
52、n問題詳情Text否否f_answer問題答案Text否否f_time答案最新更新時間Varchar20否是問題意見反饋表記錄了所有讀者通過客戶端反饋的問題或意見以及圖書館回復等內(nèi)容信息,包括用戶編號、用戶姓名、意見內(nèi)容、反饋時間等。表中字段如表3所示:表3 問題意見反饋表(suggestion)字段名中文描述類型長度可否為空是否為主鍵idIDInt11否是r_cid用戶編號Varchar20否是r_name用戶姓名Varchar20否是r_dep用戶單位Varchar50否是s_text問題意見內(nèi)容Text否否s_time問題意見反饋時間Varchar20否否s_flag是否解決Varchar1否否s_ftime解決時間Varchar20是否s_fadmin解決者Varchar20是否S_fanswer反饋回復內(nèi)容Text是否圖書館信息表記錄了圖書館相關信息,包括圖書館介紹、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保技術研發(fā)技術入股合同3篇
- 2025年度房地產(chǎn)項目安全監(jiān)管委托代建合同3篇
- 2025年度挖機出口貿(mào)易與售后服務保障合同3篇
- 二零二五年度婚內(nèi)房產(chǎn)贈與合同(涉及夫妻雙方工作調(diào)動)2篇
- 法醫(yī)學類專業(yè)大學生職業(yè)生涯發(fā)展
- 2024版藝術品買賣合同協(xié)議書范例
- 成人高考內(nèi)蒙古數(shù)學試卷
- 2025年度桉樹砍伐與木材環(huán)保認證及認證服務合同3篇
- 舊橋爆破專項施工方案
- 電子商務專業(yè)就業(yè)能力展示
- 崗位資質(zhì)管理流程培訓方案
- 醫(yī)院消防培訓方案
- 【人教部編版語文六年級上冊】選擇題專項練習復習(100道題后附答案)
- 腹膜透析建立課件
- 用戶側(cè)儲能商業(yè)模式及投資收益分析
- 廣東省廣州市越秀區(qū)2022-2023學年八年級上學期期末物理試卷
- 統(tǒng)編版語文四年級上冊《期末作文專項復習》 課件
- 2024年黑龍江省機場集團招聘筆試參考題庫含答案解析
- 食品從業(yè)人員安全學習培訓記錄
- 內(nèi)科季度護理質(zhì)量分析課件
- 裝修工程施工方案(20篇)
評論
0/150
提交評論