基于android平臺的實時公交查詢系統(tǒng)方案_第1頁
基于android平臺的實時公交查詢系統(tǒng)方案_第2頁
基于android平臺的實時公交查詢系統(tǒng)方案_第3頁
基于android平臺的實時公交查詢系統(tǒng)方案_第4頁
基于android平臺的實時公交查詢系統(tǒng)方案_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 .38/44 .HUNAN UNIVERSITY畢業(yè)設(shè)計(論文)設(shè)計論文題目:基于Android平臺的實時公交查詢系統(tǒng)_唐鵬學(xué)生_專業(yè)_軟件工程11級6班學(xué)院名稱:信息科學(xué)與工程學(xué)院指導(dǎo)王濤學(xué)院院長:仁發(fā)2015 年5 月 30 基于Android平臺的實時公交查詢系統(tǒng)摘 要目前公交已經(jīng)成為了城市必不可缺交通工具,豐富交錯的公交車線路網(wǎng)絡(luò)讓人們的出行,上下班獲得了巨大的方便和實惠。然而,因為公交線路的錯綜復(fù)雜,而且信息來源較為缺乏,使得人們難以便捷地獲得準(zhǔn)確的公交信息,這樣對一些人的出行就會產(chǎn)生一定的影響。隨著信息技術(shù)的高速發(fā)展,互聯(lián)網(wǎng)已經(jīng)融入到千千萬萬的家庭中,為他們帶來了很大便利。在如今

2、4G時代,智能手機必將成為出行者導(dǎo)航、信息查詢的良好終端。本課題將研究城市公交的實時運行線路與乘客的需求狀況,目的在于幫助出行者隨時隨地快速選擇正確的乘車線路。實現(xiàn)的方式將通過Android平臺設(shè)計出相應(yīng)的方案,做出能夠運行在Android系統(tǒng)的手機客戶端。實時分析的基本思想是將公路上的人流信息以唯一標(biāo)識、時間、位置為屬性進行統(tǒng)計分析,找出每天每個人在公路上在特定時間的流動規(guī)律,以此推斷公交的到站時間,并在手機app中顯示,以此作為乘客的候車依據(jù),從而實現(xiàn)“實時”。為了完成這個應(yīng)用的開發(fā),以C/S作為開發(fā)模式,需要開發(fā)客戶端用戶交互界面、數(shù)據(jù)的獲取與分析處理以與基于B/S結(jié)構(gòu)的后臺管理系統(tǒng)。關(guān)

3、鍵詞:Java;手機公交查詢;Android;SQLiteReal-time Public Transportation Query System Based on Android platformAbstractCurrently the bus has become indispensable urban transport, rich staggered bus line network to let people travel, commuting was a great convenience and benefits. However, since the bus lines ar

4、e complex, but more a lack of sources of information, making it difficult to easily obtain accurate public information, so some people will have to travel a certain impact. With the rapid development of information technology, the Internet has been integrated into millions of homes, as they bring a

5、lot of convenience. In todays era of 4G smart phones will become the travelers navigate, good information inquiry terminal. This paper will examine the needs of real-time status of city bus routes and passengers, is designed to help travelers anywhere quickly choose the right car lines. The way to a

6、chieve through the Android platform design the appropriate solutions to make the system to run on Android mobile client. The basic idea of real-time analysis of the flow of information is on the road to uniquely identify, time, location of property for statistical analysis to identify everyone on th

7、e roads every day flow pattern within a specific time, in order to infer the arrival time of the bus, and displayed in the phone app as a passenger waiting basis, in order to achieve real time. To accomplish this the development of applications to C / S as a development mode, we need to develop a cl

8、ient user interface, data acquisition and analysis process, and based on B / S structure of the back office systems.Keywords: Java; Mobile and querying traffic; Android; SQLite.目錄 TOC o 1-3 h z u HYPERLINK l _Toc420869817第一章 緒論 PAGEREF _Toc420869817 h 1HYPERLINK l _Toc4208698181.1 課題背景 PAGEREF _Toc4

9、20869818 h 1HYPERLINK l _Toc4208698191.2 研究容 PAGEREF _Toc420869819 h 1HYPERLINK l _Toc4208698201.3 工作容 PAGEREF _Toc420869820 h 2HYPERLINK l _Toc420869821第二章 需求分析與概要設(shè)計 PAGEREF _Toc420869821 h 3HYPERLINK l _Toc4208698222.1 需求分析 PAGEREF _Toc420869822 h 3HYPERLINK l _Toc4208698232.1.1 總體需求分析 PAGEREF _To

10、c420869823 h 3HYPERLINK l _Toc4208698242.1.2 系統(tǒng)數(shù)據(jù)庫需求分析 PAGEREF _Toc420869824 h 3HYPERLINK l _Toc4208698252.1.3 服務(wù)器端需求分析 PAGEREF _Toc420869825 h 3HYPERLINK l _Toc4208698262.1.4 客戶端需求分析 PAGEREF _Toc420869826 h 4HYPERLINK l _Toc4208698272.1.5 開發(fā)環(huán)境與工具需求分析 PAGEREF _Toc420869827 h 6HYPERLINK l _Toc4208698

11、282.2 概要設(shè)計 PAGEREF _Toc420869828 h 6HYPERLINK l _Toc4208698292.2.1 開發(fā)流程 PAGEREF _Toc420869829 h 6HYPERLINK l _Toc4208698302.2.2 系統(tǒng)數(shù)據(jù)流圖 PAGEREF _Toc420869830 h 6HYPERLINK l _Toc420869831第三章 模式設(shè)計 PAGEREF _Toc420869831 h 8HYPERLINK l _Toc4208698323.1 C/S模式簡介 PAGEREF _Toc420869832 h 8HYPERLINK l _Toc420

12、8698333.2 B/S模式簡介 PAGEREF _Toc420869833 h 8HYPERLINK l _Toc4208698343.3 B/S-C/S模式 PAGEREF _Toc420869834 h 9HYPERLINK l _Toc4208698353.3.1 B/S-C/S模式定義 PAGEREF _Toc420869835 h 9HYPERLINK l _Toc4208698363.3.2 B/S-C/S模式特點 PAGEREF _Toc420869836 h 10HYPERLINK l _Toc420869837第四章 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc420869837

13、 h 12HYPERLINK l _Toc4208698384.1 數(shù)據(jù)庫結(jié)構(gòu) PAGEREF _Toc420869838 h 12HYPERLINK l _Toc4208698394.2 服務(wù)器數(shù)據(jù)庫設(shè)計 PAGEREF _Toc420869839 h 12HYPERLINK l _Toc4208698404.2.1 Oracle簡介 PAGEREF _Toc420869840 h 12HYPERLINK l _Toc4208698414.2.2 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc420869841 h 13HYPERLINK l _Toc4208698424.3 客戶端數(shù)據(jù)庫設(shè)計 PAG

14、EREF _Toc420869842 h 15HYPERLINK l _Toc4208698434.3.1 SQLite簡介 PAGEREF _Toc420869843 h 15HYPERLINK l _Toc4208698444.3.2 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc420869844 h 16HYPERLINK l _Toc420869845第五章 服務(wù)器端詳細設(shè)計 PAGEREF _Toc420869845 h 19HYPERLINK l _Toc4208698465.1 后臺管理模式 PAGEREF _Toc420869846 h 19HYPERLINK l _Toc420869

15、8475.2 查詢簡析 PAGEREF _Toc420869847 h 20HYPERLINK l _Toc4208698485.2.1 線路查詢 PAGEREF _Toc420869848 h 21HYPERLINK l _Toc4208698495.2.2 站點查詢 PAGEREF _Toc420869849 h 21HYPERLINK l _Toc4208698505.2.3 用戶軌跡 PAGEREF _Toc420869850 h 22HYPERLINK l _Toc4208698515.2.4 用戶管理 PAGEREF _Toc420869851 h 23HYPERLINK l _T

16、oc4208698525.3 數(shù)據(jù)庫同步 PAGEREF _Toc420869852 h 23HYPERLINK l _Toc4208698535.3.1 Servlet PAGEREF _Toc420869853 h 23HYPERLINK l _Toc4208698545.3.2 DAO PAGEREF _Toc420869854 h 23HYPERLINK l _Toc420869855第六章 客戶端詳細設(shè)計 PAGEREF _Toc420869855 h 24HYPERLINK l _Toc4208698566.1 簡述 PAGEREF _Toc420869856 h 24HYPERL

17、INK l _Toc4208698576.2 什么是Android PAGEREF _Toc420869857 h 24HYPERLINK l _Toc4208698586.3 Android系統(tǒng)架構(gòu)簡介 PAGEREF _Toc420869858 h 25HYPERLINK l _Toc4208698596.3.1 應(yīng)用程序(APPLICATIONS) PAGEREF _Toc420869859 h 25HYPERLINK l _Toc4208698606.3.2 應(yīng)用程序框架(APPLICATION FRAMEWORK) PAGEREF _Toc420869860 h 26HYPERLIN

18、K l _Toc4208698616.3.3 Android 運行時(RUNTIME) PAGEREF _Toc420869861 h 26HYPERLINK l _Toc4208698626.3.4 系統(tǒng)庫(LIBRARIES) PAGEREF _Toc420869862 h 26HYPERLINK l _Toc4208698636.3.5 Linux PAGEREF _Toc420869863 h 27HYPERLINK l _Toc4208698646.4 實現(xiàn)客戶端數(shù)據(jù)庫 PAGEREF _Toc420869864 h 27HYPERLINK l _Toc4208698656.4.1

19、SQL語言 PAGEREF _Toc420869865 h 27HYPERLINK l _Toc4208698666.4.2 創(chuàng)建數(shù)據(jù)庫 PAGEREF _Toc420869866 h 27HYPERLINK l _Toc4208698676.4.3 客戶端數(shù)據(jù)庫操作 PAGEREF _Toc420869867 h 28HYPERLINK l _Toc4208698686.5 客戶端功能模塊實現(xiàn) PAGEREF _Toc420869868 h 29HYPERLINK l _Toc4208698696.5.1 用戶登錄注冊 PAGEREF _Toc420869869 h 29HYPERLINK

20、l _Toc4208698706.5.2 換乘、線路、站點查詢(離線模式) PAGEREF _Toc420869870 h 30HYPERLINK l _Toc4208698716.5.3 換乘查詢(在線模式) PAGEREF _Toc420869871 h 31HYPERLINK l _Toc4208698726.5.4 數(shù)據(jù)下載 PAGEREF _Toc420869872 h 31HYPERLINK l _Toc4208698736.5.5 選擇城市 PAGEREF _Toc420869873 h 33HYPERLINK l _Toc420869874第七章 結(jié)論 PAGEREF _Toc

21、420869874 h 34HYPERLINK l _Toc420869875致 PAGEREF _Toc420869875 h 35HYPERLINK l _Toc420869876參 考 文 獻 PAGEREF _Toc420869876 h 36第一章 緒論1.1 課題背景隨著我國社會經(jīng)濟、科技的高速發(fā)展,城市規(guī)模的擴大,人們上班、上學(xué)、出游等活動量也隨之增長,導(dǎo)致部分城市嚴重擁堵,比如、這樣的大城市,公交線路系統(tǒng)龐大,車輛眾多,交通擁堵不斷加劇,給出行帶來諸多不便。智能公交的發(fā)展對于廣大出行者來說顯得越來越重要1。然而現(xiàn)有公交系統(tǒng)存在諸多問題,人們?nèi)ス徽军c乘公交車常常會遇到以下幾種情

22、況:(1)馬上就要到公交站點了,卻眼看著公交車剛剛開走。(2)在公交站點等了很長時間也沒來車,猶豫著是改用其它交通工具還是再等一等。(3)換乘站點有多路車可供選擇,有的離目的地近,但是車次間隔長;有的離目的地稍遠,但是車次間隔短,不知乘哪一路 更好。(4)對于外地人員或者對某些地區(qū)不太熟悉的人員不知乘坐什么線路公交車才能到達目的地。隨著移動3G、4G網(wǎng)絡(luò)的發(fā)展的日漸成熟,目前大部分智能手機都能通過應(yīng)用客戶端從互聯(lián)網(wǎng)獲取大量信息,基于智能手機平臺開發(fā)的實時公交查詢系統(tǒng)就是通過從服務(wù)器獲取公交線路信息、地理位置分析乘車方案與公交實時到站信息。目前很多手機軟件,如“高德地圖”,“百度地圖“,”車來了

23、“,”無線城市“,”掌上公交等,都具備公交查詢和路線選擇功能,然而他們多數(shù)是基于靜態(tài)數(shù)據(jù)的查詢,無法反映實時交通路況,解決不了以上問題,當(dāng)然也有少數(shù)一些具備實時查詢功能,但卻并不完善,存在信息不全、信息不穩(wěn)、系統(tǒng)不穩(wěn)等問題c。1.2 研究容本課題通過調(diào)研城市實際交通狀況、查閱相關(guān)文獻資料,根據(jù)自己所學(xué)知識,開發(fā)一個基于android平臺的實時公交查詢手機應(yīng)用。實時分析的基本思想是將公路上的人流信息以唯一標(biāo)識、時間、位置為屬性進行統(tǒng)計分析,找出每天每個人在公路上在特定時間的流動規(guī)律,以此推斷公交的到站時間,并在手機app中顯示,以此作為乘客的候車依據(jù),從而實現(xiàn)“實時”。研究容主要分為三個部分:公

24、交線路、站點數(shù)據(jù),手機客戶端,PC服務(wù)器端。公交線路、站點數(shù)據(jù)方面,從互聯(lián)網(wǎng)資源獲取各城市的公交信息,并存儲在本地數(shù)據(jù)庫中,以便手動更新與客戶端的調(diào)用。手機客戶端方面,先設(shè)計好簡潔、美觀的顯示和操作界面,根據(jù)從服務(wù)器下載下來離線公交信息,為用戶提供適宜的外出乘車方案,并能隨時隨地離線查詢公交線路、站點信息。PC服務(wù)器端方面,根據(jù)公交查詢系統(tǒng)的功能需求,設(shè)計服務(wù)器與手機客戶端之間的交互流程和通信機制,管理各個城市的公交線路、站點數(shù)據(jù),實現(xiàn)公交數(shù)據(jù)的增、刪、改、查。根據(jù)用戶乘車方案以上傳的實時位置信息,分析公交的實時位置信息,預(yù)計公交到站時間。1.3 工作容在整個課題設(shè)計中,使用了數(shù)據(jù)庫系統(tǒng)設(shè)計、

25、WEB系統(tǒng)實現(xiàn)、Android應(yīng)用開發(fā)技術(shù),其中包括SSH框架、JSP、HTML、CSS、JavaScript等技術(shù)。具體工作容,包括以下四五個部分:設(shè)計系統(tǒng)的整體框架和交互機制,包括客戶端與服務(wù)器之間的通信機制、通信接口的設(shè)計,在系統(tǒng)各個實體之間的交互流程的設(shè)計、服務(wù)器各組件間交互設(shè)計;數(shù)據(jù)庫系統(tǒng)的設(shè)計與具體城市公交數(shù)據(jù)獲?。环?wù)器、客戶端功能的代碼實現(xiàn);模擬數(shù)據(jù)的生成、系統(tǒng)測試第二章 需求分析與概要設(shè)計2.1 需求分析2.1.1 總體需求分析基于Android平臺的手機實時公交線路查詢軟件最基本的功能是能夠有效的為用戶提供查詢服務(wù),在最短的時間給用戶一條或多條到達目標(biāo)地的路徑,并且能夠提示

26、公交何時到站。整個查詢過程中,公交線路數(shù)據(jù)是預(yù)先通過服務(wù)器下載到手機本地的,所以查詢算在本地實現(xiàn),而公交的到站時間是通過服務(wù)器實時獲取的。實時信息的獲取是通過對公交運行狀態(tài)(某時間點下對應(yīng)的地理位置)的歷史統(tǒng)計數(shù)據(jù)來建立對應(yīng)的模型和分析,根據(jù)分析結(jié)果預(yù)測公交車在未來某個時間點的運行狀態(tài),綜合當(dāng)前實時運行信息與歷史交通流量模型,實時預(yù)測公交車位置和公交車到站時間,以此作為依據(jù)向用戶推薦計算出來的實時公交出行方案2。乘車方案查詢是計算用戶請求的兩點之間符合用戶要求的綜合最優(yōu)的實時公交出行方案。查詢算法包括直達算的和一次換乘算法。2.1.2 系統(tǒng)數(shù)據(jù)庫需求分析實時公交查詢系統(tǒng)以公交信息數(shù)據(jù)為基礎(chǔ),公

27、交數(shù)據(jù)又分為靜態(tài)和動態(tài)數(shù)據(jù),其中靜態(tài)數(shù)據(jù)包括公交車的線路信息、站點信息、公交的線路軌等,動態(tài)數(shù)據(jù)包括公交車的實時位置數(shù)據(jù)、實時路況等3。本系統(tǒng)的靜態(tài)公交數(shù)據(jù)通過相關(guān)網(wǎng)絡(luò)資源獲取,根據(jù)這些原始數(shù)據(jù)的數(shù)據(jù)庫和編碼規(guī)則,將這些信息完整有效地、完整地組織起來并存儲到本地SQLite數(shù)據(jù)庫中,并能夠進行數(shù)據(jù)的增、刪、改、查操作。在動態(tài)公交數(shù)據(jù)方面,主要是用戶上傳到服務(wù)器的實時位置信息,只要設(shè)計出相應(yīng)的能存儲用戶名、對應(yīng)的位置和時間信息的表即可。2.1.3 服務(wù)器端需求分析服務(wù)器作為后臺,需要專業(yè)人員對服務(wù)器操作和維護,一般情況可由非專業(yè)人員借助管理軟件對服務(wù)器進行常規(guī)維護。服務(wù)器可以通過數(shù)據(jù)庫同步,為客

28、戶端數(shù)據(jù)庫提供數(shù)據(jù)。通過仔細分析服務(wù)器需求之后,服務(wù)器端要完成以下功能:1、服務(wù)器后臺管理功能服務(wù)器后臺管理是針對數(shù)據(jù)庫進行操作,具有增、刪、改、查功能。2、數(shù)據(jù)同步功能。采用Servlet技術(shù),響應(yīng)客戶端請求,返回給客戶端一端數(shù)據(jù)流,該數(shù)據(jù)流按照Xml語言規(guī)寫入數(shù)據(jù)流。服務(wù)器端功能模塊劃分如圖2.1所示。圖 2.1 服務(wù)器端功能模塊圖2.1.4 客戶端需求分析客戶端主要是手機,用戶無法通過手機對本地數(shù)據(jù)庫進行操作,也無法對服務(wù)器數(shù)據(jù)庫操作,管理員可以通過手機瀏覽器登錄到服務(wù)器管理員頁面對數(shù)據(jù)庫進行操作,可以使用一些功能。該軟件應(yīng)滿足若干要求,比如能夠隨時掌握公交信息,動態(tài)更新最新數(shù)據(jù)等。也要

29、考慮作為手機軟件可能會出現(xiàn)查詢速度慢,數(shù)據(jù)流量過大,過度依賴服務(wù)器等問題。通過仔細分析用戶需求之后,該軟件要完成以下功能:登錄注冊功能用戶可以注冊個人賬號,用戶登錄系統(tǒng)。2、線路查詢功能獲得線路經(jīng)過的每個站點信息以與線路的票價信息和發(fā)車時間信息。3、站點查詢功能根據(jù)輸入的具體站點,能夠獲得包含該站點的所有公交線路。4、換乘查詢功能輸入起點和終點,能夠快速得出乘車方案,并存“查詢歷史”中,方便下次直接獲取。5、數(shù)據(jù)下載功能根據(jù)客戶端輸入的城市名,服務(wù)響應(yīng)查詢結(jié)果并返回該城市公交線路數(shù)據(jù)庫文件,客戶端可點擊下載到本地??蛻舳斯δ苣K劃分如圖2.2所示。圖2.2 客戶端功能模塊圖2.1.5 開發(fā)環(huán)境

30、與工具需求分析服務(wù)器端開發(fā)環(huán)境,以windows7操作系統(tǒng)為開發(fā)平臺,用Tomcat6.0做為服務(wù)器,ORACLE和SQLite作為數(shù)據(jù)源,Myeclipse8.6作為開發(fā)工具,SSH作為開發(fā)框架,運行在一般的PC機上即可。客戶端開發(fā)環(huán)境,以Android手機操作系統(tǒng)為開發(fā)平臺,用Android手機操作系統(tǒng)自帶的SQLite作為數(shù)據(jù)源。ADT(Android Development Tools)作為開發(fā)工具,Java語言和Xml語言作為開發(fā)語言,實體安卓手機作為測試工具。整個Android手機操作系統(tǒng)是在Android SDK提供的虛擬機中運行,該虛擬機運行在windows7操作系統(tǒng)上,所以客

31、戶端的開發(fā)是在windows7操作系統(tǒng)上運行的Android操作系統(tǒng)中進行的二次開發(fā)4。2.2 概要設(shè)計2.2.1 開發(fā)流程開發(fā)流程如圖2.3所示。運行測試調(diào)試程序編寫程序確定功能調(diào)查研究優(yōu)化完善圖2.3 開發(fā)流程圖2.2.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流程如圖2.4所示。圖2.4 系統(tǒng)數(shù)據(jù)流圖第三章 模式設(shè)計3.1 C/S模式簡介C/S模式是一種三層結(jié)構(gòu)的系統(tǒng),第一層在客戶機上安裝了客戶機應(yīng)用程序,第二層在服務(wù)器上安裝服務(wù)器管理程序,第三層是數(shù)據(jù)訪問層。在C/S模式的工作過程中,客戶機程序向服務(wù)器發(fā)出請求,服務(wù)器程序接收客戶機程序提出的請求并且作出相應(yīng)處理,然后向客戶機返回處理結(jié)果5。C/S模式特

32、點:(1)C/S模式將應(yīng)用與服務(wù)分離,使系統(tǒng)具有更高穩(wěn)定性和靈活性(2)C/S模式配備的是點對點的適用于局域網(wǎng)的結(jié)構(gòu)模式,具有可靠的安全性(3)由于客戶端與服務(wù)器端之間沒有中間環(huán)節(jié),實現(xiàn)了直接連接, ,因此響應(yīng)速度快(4)在C/S模式中,作為客戶機的計算機都必須安裝客戶端程序,一旦軟件系統(tǒng)升級,每臺客戶機都要重新安裝升級后的客戶端應(yīng)用程序,因此C/S模式在系統(tǒng)升級和系統(tǒng)維護方面顯得較為復(fù)雜。3.2 B/S模式簡介B/S模式是一種從傳統(tǒng)的二層C/S(客戶/服務(wù))模式基礎(chǔ)上而發(fā)展起來的新的網(wǎng)絡(luò)結(jié)構(gòu)模式,其本質(zhì)可以說是三層網(wǎng)絡(luò)結(jié)構(gòu)的C/S模式。只要在用戶的計算機上安裝如IE、火狐、谷歌等瀏覽器軟件,

33、將相關(guān)數(shù)據(jù)存放在服務(wù)器上并且在服務(wù)器上安裝服務(wù)應(yīng)用程序,服務(wù)器分為WEB服務(wù)器、服務(wù)器和文件服務(wù)器等。用戶可以通過已經(jīng)安裝好的瀏覽器軟件來訪問服務(wù)器,進行互聯(lián)網(wǎng)信息瀏覽、電子傳遞和文件傳輸?shù)确?wù)6。B/S模式特點:(1)系統(tǒng)開發(fā)、維護、升級方便 每當(dāng)服務(wù)器應(yīng)用程序需要進行升級時,只需升級服務(wù)器上的應(yīng)用程序即可,而不需要修改用戶計算機上的瀏覽器軟件,從而讓系統(tǒng)開發(fā)、升級和維護更加方便。(2)B/S模式具有很強的開放性 在B/S模式下,用戶通過通用的瀏覽器軟件進行訪問,極增強了系統(tǒng)的開放性。(3)B/S模式的結(jié)構(gòu)易于擴展由于Web的平臺無關(guān)性,B/S模式的結(jié)構(gòu)可以進行任意的擴展,可以由僅包含一臺服

34、務(wù)器和幾個用戶的小型系統(tǒng),擴展成為包含成千上萬個用戶的大型系統(tǒng)。(4)用戶使用方便 B/S模式的應(yīng)用軟件一般都是基于Web瀏覽器的,而不同Web瀏覽器的界面都是相似的,對于用戶未登錄系統(tǒng)的相關(guān)功能頁面,用戶所接觸到的界面都是一致的,從而讓用戶使用更加方便。3.3 B/S-C/S模式3.3.1 B/S-C/S模式定義B/S-C/S模式是將B/S模式和C/S模式組合而來的,吸取這兩種模式的優(yōu)點,達到互補的作用。B/S模式和C/S模式都是三層結(jié)構(gòu),B/S模式第一層是表現(xiàn)層,第二層是業(yè)務(wù)邏輯層,第三層是數(shù)據(jù)訪問層。C/S模式三層結(jié)構(gòu)中第一層是客戶端與B/S模式中的第一層不一樣,其余兩層相同。在B/S模

35、式和C/S模式數(shù)據(jù)訪問過程和業(yè)務(wù)邏輯處理過程中是在服務(wù)器端完成,用戶只需承受服務(wù)器返回的結(jié)果。在B/S-C/S模式中,一部分數(shù)據(jù)訪問過程和業(yè)務(wù)邏輯處理過程在客戶端完成,另外一部分數(shù)據(jù)訪問過程和業(yè)務(wù)邏輯處理過程在服務(wù)器端完成。本手機公交線路查詢軟件一部分功能只要依靠手機本地數(shù)據(jù)庫就可以實現(xiàn),令外一部分功能需要借助互聯(lián)網(wǎng)實現(xiàn)7。目前不論是手機硬件還是計算機硬件,更新速度很快,而且硬件的配置水平也越來越高,在硬件條件允許的情況下把一部分業(yè)務(wù)處理、數(shù)據(jù)訪問的過程放在客戶端去完成,那么對服務(wù)器的硬件要求就會低一些,甚至一些高性能的PC機就可以作為服務(wù)器。從整個作業(yè)量來看,本質(zhì)上是把作業(yè)量往客戶端多分攤一

36、部分,降低服務(wù)器的作業(yè)量,因此,對客戶端的硬件要比較高的。B/S-C/S模式結(jié)構(gòu)如圖3.1 所示。圖3.1 B/S-C/S模式結(jié)構(gòu)圖本軟件系統(tǒng)采用B/S-C/S模式,系統(tǒng)框架如圖3.2所示。圖3.2 系統(tǒng)框架圖3.3.2 B/S-C/S模式特點B/S-C/S模式在繼承了B/S模式和C/S模式的優(yōu)點之后,還具有以下特點:(1) 可靠性高1、客戶端不必完全依賴于服務(wù)器,即便脫離服務(wù)器,還有手機數(shù)據(jù)庫的支持,可以繼續(xù)使用一部分功能。2、客戶端的數(shù)據(jù)丟失的時候,可以采用數(shù)據(jù)庫同步的方式從服務(wù)器獲得新的數(shù)據(jù)信息。(2) 省資源一部分作業(yè)在客戶端完成,服務(wù)器的訪問量和作業(yè)量都會減少,省資源,維護起來會更加

37、方便。第四章 數(shù)據(jù)庫設(shè)計4.1 數(shù)據(jù)庫結(jié)構(gòu)服務(wù)器數(shù)據(jù)庫為總數(shù)據(jù)源,每一個客戶端都擁有獨立的小型數(shù)據(jù)庫??蛻舳藬?shù)據(jù)庫信息從服務(wù)器端同步獲得。服務(wù)器的數(shù)據(jù)庫是基于Oracle和SQLite建立,客戶端數(shù)據(jù)庫是基于SQLite建立。數(shù)據(jù)庫體系結(jié)構(gòu)如圖4.1所示。圖4.1 數(shù)據(jù)庫體系結(jié)構(gòu)圖4.2 服務(wù)器數(shù)據(jù)庫設(shè)計4.2.1 Oracle簡介ORACLE數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一8。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世

38、界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在其中一種機型上學(xué)習(xí)了ORACLE知識,便能在其它各種類型的機器上使用它。Oracle數(shù)據(jù)庫目前的最新版本為Oracle Database 12c。一個新的多承租方架構(gòu)被引入Oracle數(shù)據(jù)庫12c,使用這種多承租方架構(gòu)可輕松地對數(shù)據(jù)庫進行云部署和管理。此外,一些創(chuàng)新特性可以讓資源的使用率和靈活性得到最大限度地提高,如Oracle Multitenant可進行快速整合多個不同的數(shù)據(jù)庫,而Automatic

39、Data Optimization和Heat Map能以更高的壓縮率來壓縮數(shù)據(jù)和更高密度對數(shù)據(jù)進行分層。這些獨一無二的技術(shù)進步,再加上在安全性、可用性大數(shù)據(jù)支持方面的主要增強,使得Oracle數(shù)據(jù)庫12c 成為公有云和私有云部署的理想平臺9。4.2.2 數(shù)據(jù)庫設(shè)計E-R關(guān)系如圖4.2所示。圖4.2 服務(wù)器數(shù)據(jù)E-R圖根據(jù)上面的E-R圖,本軟件服務(wù)器端定義的數(shù)據(jù)庫設(shè)計了以7表:站點表:site(表4.2)、線路表:bus(表4.3)、公交詳情表表: bus_intro(表4.4)、城市表:city(表4.5)、管理員表:user(表 4.6)、用戶表:uuser(表 4.7)、用戶軌跡表:use

40、rlocation(表 4.8)本軟件服務(wù)器數(shù)據(jù)庫所包含的表的描述如表4.1。表4.1 數(shù)據(jù)庫概況表表名描述主要字段site(站點表)保存站點信息site_id,site_bus_id,site_order,site_namebus(線路表)保存線路信息bus_id,bus_type,bus_name,bus_site_numbus_intro(公交詳情表)介紹公交相關(guān)信息intro_id,intro_bus_id,intro_textcity(城市表)user(管理員表)uuser(用戶表)userlocation(用戶軌跡表)保存城市公交數(shù)據(jù)源保存管理員信息保存用戶信息保存用戶軌跡信息ci

41、tyId,cityName,dbUrluserId,username,passworduserId,username,realName,passwordulId,userId,site,city,currentTime表4.2 站點表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述site_idintPK站點idsite_bus_idsite_ordersite_nameintintvarchar255FK線路id站點順序站點名稱表4.3 線路表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述bus_idintPK線路idbus_typebus_namebus_site_numberintvarcharint25

42、5線路類型線路名稱站點數(shù)量表4.4 公交詳情表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述intro_idintPKidintro_bus_idintFK線路idintro_texttext介紹信息表4.5 城市表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述cityIdintPK城市idcityNamevarchar255城市名稱dbUrlvarchar255數(shù)據(jù)存放地址dataSizevarchar20數(shù)據(jù)大小表4.6 管理員表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述userIdintPK管理員id,自增userNamevarchar255管理名passwordvarchar255登錄密碼表4.7 用戶表

43、字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述userIdintPK用戶id,自增userNamevarchar255用戶名passwordvarchar255登錄密碼realNamevarchar255真實表4.8 用戶軌跡表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述ulIdintPKId,自增userIdintFK用戶idsitevarchar255站點名cityvarchar城市名currentTimedate時間4.3 客戶端數(shù)據(jù)庫設(shè)計4.3.1 SQLite簡介Android數(shù)據(jù)庫使用的是SQLiteDatabase,我們來簡單的介紹下Android平臺上的SQLiteDatabase 。SQL

44、ite是一款輕型的數(shù)據(jù)庫,是一種遵守ACID關(guān)聯(lián)式的數(shù)據(jù)庫管理系統(tǒng),嵌入式是它的設(shè)計目標(biāo),而且目前SQLite已經(jīng)在很多嵌入式的產(chǎn)品中被使用,它所占用硬件資源很低,在大多嵌入式設(shè)備中,可能只需要僅僅幾百K的存就足夠了。它能夠支持Windows/Unix/Linux等等大多數(shù)主流的操作系統(tǒng),同時能夠跟Tcl、Java、PHP等很多程序語言相結(jié)合,還有ODBC接口,同樣比起PostgreSQL、Mysql這兩款世界著名的開源數(shù)據(jù)庫管理系統(tǒng)來講,SQLite數(shù)據(jù)庫的處理速度比他們還更快10。該軟件數(shù)據(jù)庫的建立是完全在Android平臺上執(zhí)行Java代碼,通過DVM編譯來建立的,沒有什么輔助工具,由于

45、整個SQLite數(shù)據(jù)庫是非可視化操作,所有對數(shù)據(jù)庫的操作都是通過執(zhí)行Java代碼實現(xiàn),在完成其查詢功能的時候沒有使用數(shù)據(jù)庫高級編程,較為麻煩的關(guān)節(jié)是在如何有機的將客戶端數(shù)據(jù)庫整體結(jié)構(gòu)實現(xiàn)出來,實現(xiàn)過程是無可視界面,也沒有數(shù)據(jù)庫輔助工具情況下,整個過程很抽象。且表的設(shè)計應(yīng)盡量簡單,不要有錯綜復(fù)雜的關(guān)系,每表都是獨立的,不存在任何約束,數(shù)據(jù)庫也是獨立數(shù)據(jù)庫,不采用Android特有的可共享數(shù)據(jù)庫。4.3.2 數(shù)據(jù)庫設(shè)計E-R關(guān)系如圖4.3所示。圖4.3 客戶端數(shù)據(jù)庫E-R圖根據(jù)上面的E-R圖,本軟件客戶端定義的數(shù)據(jù)庫中包含以下4表:站點表:site (表4.10)、線路表:bus(表4.11)、公

46、交詳情表:bus_intro(表4.12)、歷史查詢表:history(表4.13)、城市查詢表:setting(表4.14)。本軟件服務(wù)器數(shù)據(jù)庫所包含的表的描述如表4.9。表4.9 數(shù)據(jù)庫概況表表名描述主要字段site(站點表)保存站點信息site_id,site_bus_id,site_order,site_namebus(線路表)保存線路信息bus_id,bus_type,bus_name,bus_site_numbus_intro(公交詳情表)介紹公交相關(guān)信息intro_id,intro_bus_id,intro_texthistory(歷史查詢表)保存歷史查詢信息id,city,st

47、art,endsetting(城市設(shè)置表)保存城市選擇信息id,city表4.10 站點表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述site_idintPK站點idsite_bus_idsite_ordersite_nameintintvarchar255FK線路id站點順序站點名稱表4.11 線路表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述bus_idintPK線路idbus_typebus_namebus_site_numberintvarcharint255線路類型線路名稱站點數(shù)量表4.12 公交詳情表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述intro_idintPKidintro_bus_idi

48、ntFK線路idintro_texttext介紹信息表4.13 歷史查詢表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述idintPKid,自增citytextFK城市名稱starttext起點endtext終點表4.14 城市設(shè)置表字段名數(shù)據(jù)類型長度主鍵/外鍵默認值描述idintPKid,自增citytext城市名稱第五章 服務(wù)器端詳細設(shè)計5.1 后臺管理模式后臺使用SSH框架實現(xiàn)?;竟芾砹鞒倘鐖D5.1所示。圖5.1 管理流程圖通過輸入管理員用戶名、密碼,驗證通過,進入后臺系統(tǒng)。登錄界面如圖5.2所示。圖5.2 添加線路頁面通過管理員模式進入查詢、新增、修改、刪除線路頁面,可以對已經(jīng)添加成功的公交

49、線路信息修改并保存,也可以直接在該頁面刪除數(shù)據(jù)。查詢、新增、刪除線路頁面如圖5.3所示,具體修改頁面如圖5.4所示。圖5.3 查詢,新增、修改,刪除頁面圖5.4 具體修改頁面5.2 查詢簡析查詢方式與數(shù)據(jù)存儲格式有關(guān),線路名稱、站點名稱的存儲為字符串,且線路、站點兩個表的設(shè)計滿足第二式,查詢時根據(jù)主鍵、外鍵的對應(yīng)關(guān)系進檢索:圖5.5 線路表圖5.6 站點表5.2.1 線路查詢線路查詢可按線路名稱、編號兩種方式查詢(圖5.7),如1路、2路,編號1、2,服務(wù)器后臺會進行模糊搜索,能夠返回包含該輸入字符的線路信息。圖5.7 查詢方式5.2.2 站點查詢在站點查詢頁面設(shè)置一個線路選擇域,可以查詢出該

50、線路的所有站點,如圖5.8所示。而頁面下方設(shè)置了一個輸入文本域,可以根據(jù)輸入的站點名稱,查詢出包含該站的所有線路,如圖5.9所示。圖5.8 通過線路查詢所有站點圖5.9 查詢方式5.2.3 用戶軌跡用戶軌跡模塊可以顯示所有用戶在某個時間點所在位置,用于分析公交車的實時位置信息,如圖5.8所示。圖5.8 用戶軌跡5.2.4 用戶管理 用戶管理分為管理員信息管理和用戶信息管理,管理員是指登錄“實時公交后臺管理系統(tǒng)的“擁用管理權(quán)限的角色,用戶是指登錄手機客戶端的使用者角色,如圖5.9和較長5.10所示。圖5.9 管理員信息圖5.10 用戶信息5.3 數(shù)據(jù)庫同步5.3.1 Servlet客戶端發(fā)出一個

51、請求,服務(wù)器接收后并且響應(yīng)返回一段流??蛻舳私邮蘸笤俑鶕?jù)服務(wù)器端返回流的格式來解析數(shù)據(jù)11。5.3.2 DAODAO是Data Access Object數(shù)據(jù)訪問接口,數(shù)據(jù)訪問:故名思義就是與數(shù)據(jù)庫打交道。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間。在此使用DAO模式中封裝數(shù)據(jù)的方法,將這些數(shù)據(jù)封裝后按照一定的格式寫成數(shù)據(jù)流12。第六章 客戶端詳細設(shè)計6.1 簡述在互聯(lián)網(wǎng)迅速發(fā)展的形式下,我們不得不考慮,是否還真的有必要將公交線路查詢軟件緊緊局限于PC機上,每次查詢都要找個PC機然后再記錄下來,那樣雖然達到了查詢的目的,但是這種方式是否就能夠滿足用戶的需求了,那如果在沒有PC機的環(huán)境呢,或者說總不能隨身帶個

52、PC機或者筆記本電腦出門,只為了查詢公交線路,很明顯這種方法意義不大。但是我們可以換種思維去考慮,既然PC機可以迷你成筆記本,那么也肯定有一定的方法將其的部分功能放到更小型的“PC”上面去,比如手機。其實隨著硬件設(shè)備的逐漸發(fā)展,不少的高端手機甚至可以沖當(dāng)一臺計算機使用,如今沒電腦的人可能不在少數(shù),但是放眼望去,有幾個沒有手機呢。此次設(shè)計的主要目的是實用,讓人們使用起來會更加簡便。目前主流手機操作系統(tǒng)有Mac OS, Windows Mobile,Android,Symbian,分別由蘋果公司,微軟,谷歌,諾基亞推出,而本次設(shè)計是在Android平臺下進行開發(fā)。在此就不分別一一介紹每一個手機軟件

53、開發(fā)平臺,主要對Android進行介紹。6.2 什么是AndroidAndroid是首個基于Linux平臺的開源手機操作系統(tǒng),該平臺由操作系統(tǒng)中間件、用戶界面和應(yīng)用軟件組成,并且號稱是首個為移動終端打造的真正開放和完整的軟件13。Android一詞的本義指“機器人”,2003年美國有一家以Android為名的小公司成立,開發(fā)手機平臺。Google收購Android之后,于07年11月5日發(fā)布了開源的Android平臺一款包括操作系統(tǒng)(基于Linux核)、中間件和關(guān)鍵應(yīng)用的手機平臺,并組建了開放手機聯(lián)盟(Open Handset Alliance),包括Google、中國移動、T-Mobile、

54、宏達、高通、摩托羅拉等領(lǐng)軍企業(yè)14。2008年9月22日,美國運營商T-Mobile USA在紐約正式發(fā)布第一款Google手機T-Mobile G1。該款手機為宏達電制造,是世界上第一部使用Android操作系統(tǒng)的手機14。6.3 Android系統(tǒng)架構(gòu)簡介從軟件分層的角度來看,Android平臺由應(yīng)用程序,應(yīng)用程序框架,Android運行時,庫以與Linux核共5部分構(gòu)成15。如圖6.1所示。圖6.1 整體結(jié)構(gòu)6.3.1 應(yīng)用程序(APPLICATIONS)Android平臺默認包含了一系列核心應(yīng)用程序,包括電子、短信、日歷、地圖、瀏覽器、聯(lián)系人管理程序等,這些程序都以java 程序語言編

55、寫,你也可以用自己便攜的應(yīng)用程序來替換Android提供的應(yīng)用程序,這個替換的機制實際是由應(yīng)用程序框架來保證的16。如圖6.2所示。圖6.2 應(yīng)用層6.3.2 應(yīng)用程序框架(APPLICATION FRAMEWORK)應(yīng)用程序框架是我們進行Android開發(fā)的基礎(chǔ)應(yīng)用程序框架層包含了視圖系統(tǒng),容提供器,窗口管理器,活動管理器,通知管理器,位置管理器,資源管理器,管理器和包管理器9大部分17。如圖6.3所示。圖6.3 中間件層6.3.3 Android 運行時(RUNTIME)Android 雖然采取Java程序語言來編寫應(yīng)用程序,但不使用J2ME執(zhí)行Java程序,而是用Android自有的An

56、droid運行時(RunTime).Android 運行時包括核心庫和Dalvik虛擬機兩部分18。如圖6.4所示。圖6.4 核心庫,虛擬機6.3.4 系統(tǒng)庫(LIBRARIES)應(yīng)用程序框架是貼近于應(yīng)用程序的軟件組件服務(wù),而更底層則是Android的函數(shù)庫,這一部分是應(yīng)用程序框架的支撐,其架構(gòu)如圖6.5所示。19圖6.5系統(tǒng)庫6.3.5 LinuxAndroid平臺是開放,采用Linux核則是Android平臺開放性的基礎(chǔ)。Android平臺中的操作系統(tǒng)采用了Linux2.6版的核,它包括了顯示驅(qū)動、攝像頭驅(qū)動、Flash存驅(qū)動、Binder(IPC)驅(qū)動、鍵盤驅(qū)動、wifi驅(qū)動、Audio

57、驅(qū)動以與電源管理部分。Linux核層為我們在軟件層和硬件層建立了一個抽象層,使得應(yīng)用程序開發(fā)人員無需關(guān)心硬件細節(jié)。對于手機的開發(fā)商而言,如果想要Android平臺運行到自己的硬件平臺上就必須通過對Linux層進行修改,通常要做的工作就是為自己的硬件便攜驅(qū)動程序。206.4 實現(xiàn)客戶端數(shù)據(jù)庫6.4.1 SQL語言結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL(發(fā)音:/es kju el/ S-Q-L),是一種特殊目的的編程語言,是一種用于程序設(shè)計和數(shù)據(jù)庫查詢的語言,用于存取數(shù)據(jù)以與管理、更新、查詢關(guān)系數(shù)據(jù)庫系統(tǒng);同時它還是數(shù)據(jù)庫腳本文件的擴展名。結(jié)構(gòu)化查詢語言是允

58、許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作的高級的非過程化編程語言。它不需要用戶了解具體的數(shù)據(jù)存放方式,也不要求用戶指定對數(shù)據(jù)的存放方法,所以它可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口,即使它具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng)。結(jié)構(gòu)化查詢語言語句可以使用嵌套編寫,這使得它具有極大的靈活性和強大的功能。6.4.2 創(chuàng)建數(shù)據(jù)庫在Android平臺上,不能像Mysql一樣通過啟動mysqld來進入數(shù)據(jù)庫進行操作,Android平臺上的數(shù)據(jù)庫操作只有通過執(zhí)行Java代碼,將有效的SQL語句傳入后臺,來進行有效操作。這種訪問數(shù)據(jù)庫的方式,是目前唯一在Android平臺上訪問數(shù)據(jù)庫的途徑。數(shù)據(jù)庫創(chuàng)建代碼如下

59、:public SQLiteDatabase DatabaseonCreate() SQLiteDatabase db = null;try /數(shù)據(jù)庫名arashmen,文件格式.dbdb = this.openOrCreateDatabase(arashmen.db, MODE_WORLD_WRITEABLE,null); catch (Exception e) e.printStackTrace();return db;6.4.3 客戶端數(shù)據(jù)庫操作1.DBHelper類,是數(shù)據(jù)庫操作類:public MyDataBase(Context context)this.context = con

60、text;dbHelper = new DatabaseHelper(context);db = dbHelper.getWritableDatabase();2.createSettingTable()方法是創(chuàng)建表:publicvoidcreateSettingTable()/創(chuàng)建表String sql = CREATE TABLE IF NOT EXISTS setting (_id INTEGER PRIMARY KEY AUTOINCREMENT, +city TEXT NOT NULL);trydb.execSQL(sql);/需要異常捕獲catch(Exception e)Log.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論