基于web架構Android城市導游系統
智能手機與Internet 服務(wù)的結合是未來(lái)信息發(fā)展和軟件應用的趨勢。Android 手機操作系統是Google 公司于2007 年11 月宣布的基于Linux? V2.6 內核的開(kāi)源的手機操作系統,具有廣泛的應用和發(fā)展前景。本文中將Web 開(kāi)發(fā)中的三層架構移植改進(jìn)為數據服務(wù)器、應用服務(wù)器和手機客戶(hù)端三層的系統架構,提出了基于web services 的一種軟件開(kāi)發(fā)框架,并依據這種框架開(kāi)發(fā)了Android 城市導游系統,可以實(shí)現對城市主要景點(diǎn)、住宿、飲食、購物等基礎信息的在線(xiàn)查詢(xún)。
本文引用地址:http://dyxdggzs.com/article/201706/352948.htm1 引言
手機是人們可以隨身攜帶的便利的通訊工具,隨著(zhù)智能手機的出現,它也成為人們快速方便的獲得信息的一種重要途徑。而越來(lái)越多的手機軟件更是迅速的改變著(zhù)人們的生活。但是,由于硬件及存儲空間的限制,手機中存儲的信息也受到了限制。
本文中,將手機軟件開(kāi)發(fā)與Internet 相結合,將Web 三層架構移植到手機軟件的開(kāi)發(fā)中,設計并實(shí)現了基于A(yíng)ndroid 操作系統的手機應用軟件--城市導游系統,可以實(shí)現對城市主要景區、酒店、旅店的分類(lèi)查詢(xún),以及通過(guò)使用者的手機定位功能實(shí)現對其周邊景區、酒店、旅店的信息查詢(xún),實(shí)現了城市導游中的游玩、飲食、住宿等的查詢(xún)需求。
2 Android 操作系統介紹
Android 是Google 于2007 年11 月宣布的基于Linux? V2.6 內核的開(kāi)源的手機操作系統。最初,Android 的部署目標是移動(dòng)電話(huà)領(lǐng)域,包括智能電話(huà)和更廉價(jià)的翻蓋手機。但是,Android 全面的計算服務(wù)和豐富的功能支持完全有能力擴展到移動(dòng)電話(huà)市場(chǎng)以外。因此 Android 也可以用于其他的平臺和應用程序,發(fā)展前景非常廣闊。
Android 系統采用了分層的架構,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫和Linux 核心層。在應用程序層中,提供了豐富的核心應用程序,包括email 客戶(hù)端,SMS 短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA 語(yǔ)言編寫(xiě)的。應用程序框架層簡(jiǎn)化了組件的重用,任何一個(gè)應用程序都可以發(fā)布或使用其他應用程序發(fā)布的功能塊。系統運行庫包含一組核心庫和Dalvik 虛擬機。應用程序框架層。Linux 核心層用來(lái)提供系統的底層服務(wù),位于硬件和其它軟件層之間,采用 YAFFS2 文件系統。
3 系統框架設計
在基于Web 的軟件開(kāi)發(fā)中,常用到Web 三層架構,即用戶(hù)接口層,業(yè)務(wù)邏輯層,數據訪(fǎng)問(wèn)層。用戶(hù)接口層,即客戶(hù)端或瀏覽器端,主要負責數據的顯示。業(yè)務(wù)邏輯層,即應用服務(wù)器,主要負責數據的業(yè)務(wù)邏輯處理。數據訪(fǎng)問(wèn)層,即數據服務(wù)器,主要負責對數據庫的存取操作。
Web 三層架構可以移植到手機應用程序的開(kāi)發(fā)中,將手機的應用程序作為客戶(hù)端,負責用戶(hù)接口層的工作,而大量的數據存儲在Internet 數據服務(wù)器中,邏輯業(yè)務(wù)的處理由應用服務(wù)器負責,從而實(shí)現智能手機與Internet 的結合,可以使手機輕松方便的訪(fǎng)問(wèn)Internet 上的大量數據。
在基于A(yíng)ndroid 的城市導游系統中,采用了客戶(hù)端、應用服務(wù)器和數據服務(wù)器三層架構。本系統整體架構如圖1 所示??蛻?hù)端是基于A(yíng)ndroid 操作系統的手機應用程序,負責數據的輸入、解析和顯示。應用服務(wù)器主要以Web Services 的方式提供服務(wù),并在數據處理中使用了Lucene 索引和中文切詞技術(shù)。數據服務(wù)器主要負責數據的存儲,數據庫采用MySQL.
將系統的整體架構分成三個(gè)部分,各個(gè)部分相對獨立,將數據的存儲、處理和顯示分開(kāi),有利于系統的開(kāi)發(fā)和維護;各個(gè)部分之間的聯(lián)系通過(guò)軟件來(lái)連接,也有利于系統的變遷和升級。
圖1 系統架構圖
4 系統的模塊圖
城市導游系統主要實(shí)現對城市景區、購物、食宿等信息的查詢(xún),以及通過(guò)手機定位查詢(xún)周邊的相關(guān)信息。系統的模塊圖如圖2 所示。其中,在景區、購物、食宿的各個(gè)模塊中,還可以具體按照城市的分區查詢(xún)、精確查詢(xún)、按照排行等進(jìn)行進(jìn)一步細致的查詢(xún)。
圖2 系統模塊圖
5 系統的設計實(shí)現
5.1 數據服務(wù)器的實(shí)現
數據服務(wù)器主要負責數據的存儲,包括數據庫和文件兩種形式。數據庫采用MySQL 數據庫。MySQL是一個(gè)小型關(guān)系型數據庫管理系統,它被廣泛地應用在Internet 上的中小型網(wǎng)站中。其體積小、速度快、總體擁有成本低,既能夠作為一個(gè)單獨的應用程序應用在客戶(hù)端服務(wù)器網(wǎng)絡(luò )環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中提供多語(yǔ)言支持,非常靈活。城市導游系統的數據庫結構如下。
?。?) Scenery:負責記錄景點(diǎn)的信息。
圖3 scenery
?。?) Market:負責記錄消費場(chǎng)所的信息。
圖4 market.
?。?)restaurant:負責記錄餐飲場(chǎng)所的信息。
圖5 restaurant.
?。?)hotel:負責記錄住宿信息。
圖6 restaurant.
對于數據庫中的大量數據,根據用戶(hù)對這些數據的敏感度不同,數據的查詢(xún)概率也不同,對于經(jīng)常查詢(xún)的數據,可以通過(guò)建立索引的方式來(lái)提高查詢(xún)的速度。本系統采用Lucene 檢索引擎和中文切詞技術(shù),針對數據庫中,查詢(xún)概率較大的數據建立索引文件,將對數據庫中大量數據的查詢(xún)轉化為對索引文件的查詢(xún),從而大大的提高了查詢(xún)效率。而索引文件的建立和查詢(xún)都是通過(guò)軟件實(shí)現,有利于數據的更新和維護。
5.2 邏輯業(yè)務(wù)處理
對數據的邏輯處理是連接數據服務(wù)器和客戶(hù)端的重要組成部分。將數據的處理部分獨立出來(lái),將數據的存儲和顯示分開(kāi),真正實(shí)現了系統的邏輯獨立性和物理獨立性。對于數據的邏輯處理, 采用基于A(yíng)pache Axis2 引擎來(lái)建立Web Services 服務(wù)的方法來(lái)實(shí)現。將所需要的數據以服務(wù)的方式提供,便于客戶(hù)端對數據的訪(fǎng)問(wèn),也有利于服務(wù)的更新與維護。
Apache Axis2 是新一代的SOAP 引擎,采用名為AXIOM(AXIs Object Model)的新核心 XML 處理模型,利用新的XML 解析器提供的靈活性按需構造對象模型。
客戶(hù)端對數據的需求往往是批量的數據,即從數據庫或索引中查詢(xún)出的數據是多條記錄集的形式。而對于這些記錄集的處理是相當復雜的,為了簡(jiǎn)化WebServices 的處理和客戶(hù)端的解析,將結果集封裝在自圖7 景點(diǎn)查詢(xún)界面定義的類(lèi)中。
如在景區模塊中,定義了類(lèi)SceneryArray 存放景點(diǎn)列表信息的記錄集。定義了函數public SceneryArraygetService1(String area),主要功能是根據用戶(hù)輸入的信息,查詢(xún)并返回查詢(xún)到的景點(diǎn)列表,把結果集封裝到自定義類(lèi)SceneryArray 的對象中, 返回SceneryArray 的對象。對于函數getSercice1(Stringarea)將發(fā)布成Web Services 服務(wù)。
5.3 客戶(hù)端的設計
客戶(hù)端,也就是用戶(hù)所使用的智能手機,本系統基于A(yíng)ndroid 操作系統開(kāi)發(fā)。用戶(hù)可以通過(guò)智能手機提供的輸入界面輸入要查詢(xún)的信息,然后連接服務(wù)器,最后將所需數據在客戶(hù)端顯示。由于Web Services提供的數據是自定義類(lèi)的形式,客戶(hù)端還要負責對數據的部分解析處理。在客戶(hù)端, 采用了KSoap2 Android 來(lái)實(shí)現連接服務(wù)器和數據的解析等工作。KSoap2 Android 是 Android 平臺上一個(gè)高效、輕量級的 SOAP 開(kāi)發(fā)包。等同于 Android 上的KSoap2 的移植版本。是一個(gè)SOAPwebservice客戶(hù)端包。主要用于資源受限制的Java 環(huán)境如Applets 或J2ME 應用程序(CLDC/CDC/MIDP)。
6 設計結果與分析
城市導游系統使用戶(hù)可以便捷的通過(guò)智能手機終端連接和訪(fǎng)問(wèn)Internet 服務(wù)器,獲得數據和信息服務(wù)。將手機的方便快捷與Internet 服務(wù)器的大數據容量和高性能服務(wù)支持有效的結合起來(lái),發(fā)揮二者之優(yōu)勢。圖7 是系統的景點(diǎn)查詢(xún)界面,圖8 是通過(guò)手機定位以便查詢(xún)周邊信息的界面。
圖7 景點(diǎn)查詢(xún)界面
圖8 地圖定位界面。
7 結束語(yǔ)
本系統中將Web 開(kāi)發(fā)中的三層架構移植改進(jìn)為數據服務(wù)器、應用服務(wù)器和手機客戶(hù)端三層的系統架構,便于系統各部分的獨立開(kāi)發(fā),有利于系統的更新和維護,并可以方便的將本系統升級以適用于不同手機操作平臺,從而實(shí)現本系統的跨平臺應用。智能手機與Internet 服務(wù)的結合必將成為未來(lái)信息發(fā)展的趨勢,而基于智能手機和Internet 服務(wù)的軟件應用也必將有著(zhù)廣泛的應用前景。
評論