肖大薇 李曉東


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