肖大薇 李曉東
摘 要:該論文研究的項目以基于地理位置的服務(wù)為主線,使用戶登錄或注冊后就可以隨時隨地以文字、圖片、音頻、視頻的方式分享自己的消息給周邊的人,查看自己周圍的消息,同時針對某些熱門話題進(jìn)行討論。項目采用C/S(客戶端/服務(wù)器端)架構(gòu),客戶端采用Android平臺,服務(wù)器端使用Spring MVC、Hibernate架構(gòu),C/S兩端通過HTTP協(xié)議進(jìn)行通信。該文從介紹這些基本理論開始,介紹了整個項目的開發(fā)流程:系統(tǒng)功能設(shè)計、模塊劃分、用例設(shè)計、數(shù)據(jù)庫設(shè)計、系統(tǒng)流程設(shè)計、用戶界面設(shè)計、開發(fā)環(huán)境搭建、編碼、測試,最后對項目進(jìn)行了總結(jié)。
關(guān)鍵詞:基于地理位置的服務(wù) 消息 分享 Android平臺
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2016)01(a)-0067-03
位置與人們的生產(chǎn)生活息息相關(guān),它也是移動互聯(lián)網(wǎng)的重要特性之一。隨著GPS(Global Positioning System,全球定位系統(tǒng))定位精度和終端設(shè)備定位能力的提高,基于位置的服務(wù)(Location Based Service,簡稱LBS)在很多行業(yè)中得到新的發(fā)展機(jī)會[1]。LBS通過電信移動運營商的無線電通訊網(wǎng)絡(luò)或外部定位方式獲取移動終端用戶的位置信息,在GIS(Geographic Information System,地學(xué)信息系統(tǒng))平臺的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)[2],如地圖顯示、實時導(dǎo)航、三維地圖服務(wù)等。
消息分享軟件類似于微博。微博用戶既可以作為觀眾,在微博上瀏覽你感興趣的信息;又可以作為發(fā)布者,在微博上發(fā)布內(nèi)容供別人瀏覽。發(fā)布的內(nèi)容一般較短,微博也因此得名。微博以人際關(guān)系為主線,想要瀏覽一些信息,必須先要關(guān)注一些人,發(fā)布的信息也只能傳播給關(guān)注自己的人。與此不同,消息分享軟件以LBS為主線,用戶只要登錄此軟件,就可以瀏覽自己周圍的人發(fā)布的消息,并傳播自己的消息給周圍的人,簡化了獲取、發(fā)布信息的流程。
1 軟件功能設(shè)計
(1)基于地理位置的消息查看。用戶登錄軟件后跳轉(zhuǎn)到主界面,此時軟件需要向服務(wù)器端發(fā)送請求,查詢用戶當(dāng)前位置周圍的消息并以列表的形式顯示。用戶點擊某條消息可以進(jìn)入詳情頁進(jìn)行查看,并選擇是否收藏,還可以發(fā)布評論。
(2)基于地理位置的熱門話題。用戶登錄以后可以針對某些熱門話題進(jìn)行查看、創(chuàng)建、參與討論。
(3)基于地理位置的消息分享。實現(xiàn)用戶隨時隨地以文字、圖片、音頻和視頻的方式記錄、給他人分享消息的功能。
(4)基于Google Map的衛(wèi)星地圖[3]展示。使用戶可以以地圖模式形象的查看自己周圍有哪些消息在發(fā)生。
(5)個人信息管理。用戶可以查看編輯自己的基本信息,修改密碼,上傳頭像,查看自己發(fā)布的消息、創(chuàng)建的熱點以及收藏的消息。
2 軟件模塊劃分
2.1 用戶模塊
2.1.1 用戶注冊
用戶第一次啟動軟件時將跳轉(zhuǎn)到注冊頁面,輸入相關(guān)信息后程序?qū)⑦M(jìn)行數(shù)據(jù)校驗,校驗通過后向服務(wù)器端發(fā)送注冊請求,并解析返回的數(shù)據(jù),如果注冊失敗則提示用戶重新注冊,如果注冊成功,將上傳用戶此時所在的地理位置,同時跳轉(zhuǎn)到完善個人信息頁面,用戶可選擇是否完善,最后會跳轉(zhuǎn)到主界面。
2.1.2 用戶登錄
用戶啟動軟件時系統(tǒng)會先查詢本地是否保存有賬號、密碼,如果有則后臺發(fā)送登錄請求到服務(wù)器端,否則將跳轉(zhuǎn)到登錄頁面允許用戶登錄,登錄成功后會跳轉(zhuǎn)到主界面。
2.1.3 個人主頁
用戶在個人主頁可以看到自己的用戶名、郵箱,發(fā)布的消息數(shù)量、收藏的消息數(shù)量以及發(fā)布的熱點數(shù)。
2.1.4 我發(fā)布的消息
用戶在個人主頁中點擊我的發(fā)布就可進(jìn)入我發(fā)布的消息列表頁,此時客戶端向服務(wù)器端發(fā)送請求,服務(wù)器端每次返回20條數(shù)據(jù),如果此次返回數(shù)據(jù)小于20條,則認(rèn)為已經(jīng)沒有更多已發(fā)布的消息了,此時將隱藏“更多”這個按鈕。
2.2 消息模塊
2.2.1 消息列表
用戶登錄或注冊完成后將跳轉(zhuǎn)到消息列表頁,此時將判斷本地是否有信息,是則加載,否則上傳經(jīng)緯度信息向服務(wù)器端發(fā)送請求,然后將返回的數(shù)據(jù)顯示在頁面上,同時存入本地數(shù)據(jù)庫。具體流程如圖1所示。
2.2.2 消息發(fā)布
用戶進(jìn)入消息發(fā)布頁后,輸入標(biāo)題、內(nèi)容,選擇分類即可發(fā)布。如果發(fā)布成功,則發(fā)布流程結(jié)束;如果發(fā)布失敗,先判斷用戶是否登錄失效,如果是則重新登錄,否則提示用戶重新發(fā)布。
2.3 熱點模塊
用戶進(jìn)入熱點列表頁后,系統(tǒng)將根據(jù)用戶當(dāng)前位置去請求數(shù)據(jù),服務(wù)器端接收到請求后會去數(shù)據(jù)庫查詢[4]符合條件的數(shù)據(jù),如果數(shù)據(jù)量很大,則獲取200條數(shù)據(jù)并做緩存,然后向客戶端返回20條數(shù)據(jù)。如果用戶選擇更新,則重復(fù)以上步驟。如果用戶選擇更多,服務(wù)器端將判斷用戶位置是否變動或在一定范圍內(nèi)變動,如果超出了范圍,則重新查詢數(shù)據(jù)并返回,否則取緩存中的數(shù)據(jù)返回。
3 用戶界面設(shè)計
3.1 主界面
用戶在主界面可以查看自己周圍最新發(fā)布的消息,點擊次數(shù)、評論次數(shù)比較多的熱門消息以及區(qū)域內(nèi)的消息排行,點擊某一天消息即可進(jìn)入詳情頁面。
3.2 消息詳情頁
用戶在詳情頁可以查看新消息的所有內(nèi)容,并且可以選擇收藏、評論。
3.3 消息評論頁
用戶在詳情頁可以點擊評論數(shù)量圖標(biāo),跳轉(zhuǎn)到評論列表頁,查看其他用戶的評論信息。
3.4 消息發(fā)布
用戶在主界面點擊發(fā)布圖標(biāo)即可跳轉(zhuǎn)到發(fā)布界面,輸入標(biāo)題、內(nèi)容,選擇分類即可發(fā)布一條消息。
3.5 個人主頁
用戶可以查看自己的頭像、用戶名、郵箱,發(fā)表的消息數(shù)量、創(chuàng)建的熱點數(shù)量以及收藏的消息數(shù)量。
4 通信協(xié)議設(shè)計
4.1 協(xié)議狀態(tài)碼
項目借鑒HTTP協(xié)議的狀態(tài)碼,自定義了一些狀態(tài)碼,服務(wù)器處理完客戶端請求時會根據(jù)請求結(jié)果在XML頭部封裝狀態(tài)碼返回,方便了客戶端的解析。
如果服務(wù)器端返回2XXXX,則表示服務(wù)器端成功處理了此次請求;如果服務(wù)器端返回3XXXX,則表示被請求的資源已被永久移動到新位置,該返回會同時包含一個該資源新的地址,客戶端獲得該地址后,重新請求該資源新的地址;如果服務(wù)器端返回4XXXX,則表示此次請求未被成功處理;如果服務(wù)器端返回5XXXX,則表示用戶登錄失敗,比如賬號不存在或密碼錯誤;如果服務(wù)器端返回6XXXX,則表示用戶注冊失敗,比如賬號已被注冊。如表1所示。
4.2 文件格式
客戶端向服務(wù)器端發(fā)送請求后,服務(wù)器端以XML文件的形式返回數(shù)據(jù)。由于不同請求對應(yīng)的文件內(nèi)容都不同,為了降低解析的工作量,項目通過定義DTD文件來規(guī)范服務(wù)器端返回的XML。服務(wù)器端將數(shù)據(jù)封裝成DTD定義的格式,大大降低了客戶端解析的工作量。
DTD定義了文件的根節(jié)點為lbs_news,根節(jié)點有兩個子節(jié)點,分別為head和body。
head節(jié)點包括3個子節(jié)點,分別是code、message、sys_time。code即為上一節(jié)提到的協(xié)議狀態(tài)碼,message為狀態(tài)碼對應(yīng)的信息,sys_time為系統(tǒng)返回數(shù)據(jù)的時間。
body節(jié)點包括classify_list、user、news、hot_list、news_list、comment_list等子節(jié)點。classify_list即對應(yīng)數(shù)據(jù)庫設(shè)計中的分類信息表,分類信息表的每一個字段對應(yīng)classify中的一個屬性;user即對應(yīng)數(shù)據(jù)庫設(shè)計中的用戶信息表,用戶信息表中的每一個字段對應(yīng)user中的一個屬性;同理,hot_list、news_list、comment_list分別對應(yīng)數(shù)據(jù)庫設(shè)計中的熱點信息表、新鮮事信息表以及新鮮事評論表。
5 結(jié)語
文章設(shè)計了基于LBS的應(yīng)用系統(tǒng),給出了系統(tǒng)的總體設(shè)計方案和實現(xiàn)的關(guān)鍵技術(shù)。LBS帶來的新思維和營銷魅力為用戶提供了豐富的想象空間,推動移動互聯(lián)網(wǎng)對人們的生活產(chǎn)生了巨大的影響。但是LBS帶來的隱私安全性問題越來越受到人們的關(guān)注[5],所以位置隱私保護(hù)問題必將成為今后LBS領(lǐng)域的主要研究任務(wù)。
參考文獻(xiàn)
[1] 聶燦權(quán).基于LBS的移動地理信息服務(wù)平臺架構(gòu)技術(shù)研究[J].科技創(chuàng)新導(dǎo)報,2014(7):15-16.
[2] 肖遠(yuǎn)東.基于LBS的跑步軟件設(shè)計[J].江漢大學(xué)學(xué)報:自然科學(xué)版,2014(4):45-51.
[3] 張高明,馬力,趙璟,等.基于Android平臺的校園LBS應(yīng)用研究[J].西安文理學(xué)院學(xué)報:自然科學(xué)版,2013(3):62-67.
[4] 王泰璐.基于LBS移動服務(wù)框架的設(shè)計與實現(xiàn)[J]計算機(jī)光盤軟件與應(yīng)用,2014(4):284.
[5] 楊松濤,馬春光,周長利.面向LBS的隱私保護(hù)模型及方案[J].通信學(xué)報,2014(8):116-124.