基于web架構(gòu)Android城市導(dǎo)游系統(tǒng)
摘要:智能手機(jī)與Internet 服務(wù)的結(jié)合是未來信息發(fā)展和軟件應(yīng)用的趨勢。Android 手機(jī)操作系統(tǒng)是Google 公司于2007 年11 月宣布的基于Linux? V2.6 內(nèi)核的開源的手機(jī)操作系統(tǒng),具有廣泛的應(yīng)用和發(fā)展前景。本文中將Web 開發(fā)中的三層架構(gòu)移植改進(jìn)為數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器和手機(jī)客戶端三層的系統(tǒng)架構(gòu),提出了基于web services 的一種軟件開發(fā)框架,并依據(jù)這種框架開發(fā)了Android 城市導(dǎo)游系統(tǒng),可以實(shí)現(xiàn)對城市主要景點(diǎn)、住宿、飲食、購物等基礎(chǔ)信息的在線查詢。
1 引言
手機(jī)是人們可以隨身攜帶的便利的通訊工具,隨著智能手機(jī)的出現(xiàn),它也成為人們快速方便的獲得信息的一種重要途徑。而越來越多的手機(jī)軟件更是迅速的改變著人們的生活。但是,由于硬件及存儲(chǔ)空間的限制,手機(jī)中存儲(chǔ)的信息也受到了限制。
本文中,將手機(jī)軟件開發(fā)與Internet 相結(jié)合,將Web 三層架構(gòu)移植到手機(jī)軟件的開發(fā)中,設(shè)計(jì)并實(shí)現(xiàn)了基于Android 操作系統(tǒng)的手機(jī)應(yīng)用軟件--城市導(dǎo)游系統(tǒng),可以實(shí)現(xiàn)對城市主要景區(qū)、酒店、旅店的分類查詢,以及通過使用者的手機(jī)定位功能實(shí)現(xiàn)對其周邊景區(qū)、酒店、旅店的信息查詢,實(shí)現(xiàn)了城市導(dǎo)游中的游玩、飲食、住宿等的查詢需求。
2 Android 操作系統(tǒng)介紹
Android 是Google 于2007 年11 月宣布的基于Linux? V2.6 內(nèi)核的開源的手機(jī)操作系統(tǒng)。最初,Android 的部署目標(biāo)是移動(dòng)電話領(lǐng)域,包括智能電話和更廉價(jià)的翻蓋手機(jī)。但是,Android 全面的計(jì)算服務(wù)和豐富的功能支持完全有能力擴(kuò)展到移動(dòng)電話市場以外。因此 Android 也可以用于其他的平臺(tái)和應(yīng)用程序,發(fā)展前景非常廣闊。
Android 系統(tǒng)采用了分層的架構(gòu),從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫和Linux 核心層。在應(yīng)用程序?qū)又?,提供了豐富的核心應(yīng)用程序,包括email 客戶端,SMS 短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA 語言編寫的。應(yīng)用程序框架層簡化了組件的重用,任何一個(gè)應(yīng)用程序都可以發(fā)布或使用其他應(yīng)用程序發(fā)布的功能塊。系統(tǒng)運(yùn)行庫包含一組核心庫和Dalvik 虛擬機(jī)。應(yīng)用程序框架層。Linux 核心層用來提供系統(tǒng)的底層服務(wù),位于硬件和其它軟件層之間,采用 YAFFS2 文件系統(tǒng)。
3 系統(tǒng)框架設(shè)計(jì)
在基于Web 的軟件開發(fā)中,常用到Web 三層架構(gòu),即用戶接口層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。用戶接口層,即客戶端或?yàn)g覽器端,主要負(fù)責(zé)數(shù)據(jù)的顯示。業(yè)務(wù)邏輯層,即應(yīng)用服務(wù)器,主要負(fù)責(zé)數(shù)據(jù)的業(yè)務(wù)邏輯處理。數(shù)據(jù)訪問層,即數(shù)據(jù)服務(wù)器,主要負(fù)責(zé)對數(shù)據(jù)庫的存取操作。
Web 三層架構(gòu)可以移植到手機(jī)應(yīng)用程序的開發(fā)中,將手機(jī)的應(yīng)用程序作為客戶端,負(fù)責(zé)用戶接口層的工作,而大量的數(shù)據(jù)存儲(chǔ)在Internet 數(shù)據(jù)服務(wù)器中,邏輯業(yè)務(wù)的處理由應(yīng)用服務(wù)器負(fù)責(zé),從而實(shí)現(xiàn)智能手機(jī)與Internet 的結(jié)合,可以使手機(jī)輕松方便的訪問Internet 上的大量數(shù)據(jù)。
在基于Android 的城市導(dǎo)游系統(tǒng)中,采用了客戶端、應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器三層架構(gòu)。本系統(tǒng)整體架構(gòu)如圖1 所示。客戶端是基于Android 操作系統(tǒng)的手機(jī)應(yīng)用程序,負(fù)責(zé)數(shù)據(jù)的輸入、解析和顯示。應(yīng)用服務(wù)器主要以Web Services 的方式提供服務(wù),并在數(shù)據(jù)處理中使用了Lucene 索引和中文切詞技術(shù)。數(shù)據(jù)服務(wù)器主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),數(shù)據(jù)庫采用MySQL.
將系統(tǒng)的整體架構(gòu)分成三個(gè)部分,各個(gè)部分相對獨(dú)立,將數(shù)據(jù)的存儲(chǔ)、處理和顯示分開,有利于系統(tǒng)的開發(fā)和維護(hù);各個(gè)部分之間的聯(lián)系通過軟件來連接,也有利于系統(tǒng)的變遷和升級。
圖1 系統(tǒng)架構(gòu)圖
4 系統(tǒng)的模塊圖
城市導(dǎo)游系統(tǒng)主要實(shí)現(xiàn)對城市景區(qū)、購物、食宿等信息的查詢,以及通過手機(jī)定位查詢周邊的相關(guān)信息。系統(tǒng)的模塊圖如圖2 所示。其中,在景區(qū)、購物、食宿的各個(gè)模塊中,還可以具體按照城市的分區(qū)查詢、精確查詢、按照排行等進(jìn)行進(jìn)一步細(xì)致的查詢。
圖2 系統(tǒng)模塊圖