葛唱+郝泳濤
摘要:隨著快速發(fā)展的互聯(lián)網(wǎng)技術(shù)和智能手機推廣,加速了學校信息的傳遞,實現(xiàn)校園社區(qū)的信息化、智慧化顯得越來越重要。它研究的是在移動環(huán)境下,基于位置,通過動態(tài)更新、個性化推薦等服務(wù),建立一種新的學校社區(qū)生活圈互動服務(wù)機制。
關(guān)鍵詞:基于位置的服務(wù);Android開發(fā);校園服務(wù);Socket通信;TCP協(xié)議
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)35-0026-03
An Implementation of the Campus Service Based on the Location
GE Chang, HAO Yong-tao
(Electronics and Information Engineering College,Tongji University, Shanghai 201800, China)
Abstract: With the rapid development of internet technology and samrtphone, it speeds up the information transmission on the campus. Realizing the informatization, the wisdom of the campus community is more and more important. Its a research in mobile environment, based on the location ,through dynamic update and personalized recommendation services, to create a new kind of campus community life interactive service mechanism.
Key words: location based service; Android development; campus services; Socket communication; TCP protocol
1 基于位置的服務(wù)簡介
基于位置的服務(wù)(location based service,下面簡稱LBS)是定位技術(shù)、移動通訊技術(shù)、GIS技術(shù)和互聯(lián)網(wǎng)技術(shù)相結(jié)合的產(chǎn)物。無線通訊技術(shù)、GIS技術(shù)、Internet技術(shù)的發(fā)展共同促成了現(xiàn)代的LBS的出現(xiàn)[1]。
它包含兩層含義:一是定位設(shè)備或者用戶的地理位置,二是提供與位置相關(guān)的服務(wù)。它的結(jié)構(gòu)概括起來包含移動客戶端、中介、服務(wù)器三大類。其中移動客戶端包括手機、PDA、手持計算機等,隨著新技術(shù)的發(fā)展,移動客戶端的種類也會越來越多,目前數(shù)量最多的是智能手機。中介則是WAP網(wǎng)關(guān),負責客戶端與服務(wù)器之間的交流,包含一些協(xié)議,接口等,使得客戶端與服務(wù)器之間達成一致。服務(wù)器的種類、大小以及復(fù)雜程度根據(jù)自身條件的變化而變化,小到可以僅僅是一臺電腦作為一個服務(wù)器,大到是多級多種服務(wù)器向客戶提供LBS,這其中有專門負責定位客戶地理位置的定位服務(wù)器,也有專門提供服務(wù)的WEB服務(wù)器。
2 校園服務(wù)需求
校園服務(wù)指的是以師生生活為背景,針對學生教師校園信息服務(wù)不流暢、交流溝通不方便等問題,為廣大師生提供一系列資訊和服務(wù),包括學習、活動、出行、位置服務(wù)等。
學習是指當用戶注冊登陸后,可以通過該平臺發(fā)布一些學習相關(guān)的信息,比如校園講座、報告會、座談會、教學研究等等,同時服務(wù)器會即時推送該信息給可能感興趣或已訂制該服務(wù)的用戶,這樣更多的用戶就能接收到服務(wù)器主動推送來的信息,解決了校園信息服務(wù)不流暢、交流溝通不方便的問題。
活動是指用戶可以通過該平臺發(fā)起一些活動,比如興趣討論組織、主題討論邀請、專家講座、英語角和娛樂發(fā)起活動等,同時服務(wù)器會即時推送該活動給可能感興趣或訂制該服務(wù)的用戶,這樣更多的用戶就能參加這些活動,解決了校園信息服務(wù)不流暢、交流溝通不方便的問題。
出行是指用戶可以通過該平臺發(fā)布一些出行信息,比如結(jié)伴出游、拼車、公交地鐵以及班車信息查詢等,同時服務(wù)器會即時推送該信息給可能感興趣或已訂制該服務(wù)的用戶,這樣更多的用戶就能一起出游、拼車、得到想要的信息,解決了校園信息服務(wù)不流暢、交流溝通不方便的問題。
位置服務(wù)主要指根據(jù)用戶當前所在的位置信息(地理坐標,或大地坐標),在該服務(wù)平臺的支持下,為用戶提供相應(yīng)服務(wù)(比如感興趣的學習信息、活動、出行等),或推送一些其他用戶的請求信息(比如其他用戶的查詢或提問),再次解決了校園信息服務(wù)不流暢、交流溝通不方便的問題。
對應(yīng)的智慧校園服務(wù)器端,通過個性化推薦服務(wù)、動態(tài)更新服務(wù)、基于地理位置的查詢服務(wù)等。利用云計算中的基礎(chǔ)設(shè)施層、平臺層、應(yīng)用層技術(shù),滿足整個校園智慧社區(qū)的需求;利用上下文感知求解個性化推薦方法,實現(xiàn)主動推送,構(gòu)建可推薦、可交互及可切換的平臺。從而有效地將虛擬世界和現(xiàn)實社會結(jié)合起來,加速信息的傳遞,促進校園師生間的交流,為學生和教師的生活帶來了便利,并建立一種新的學校社區(qū)生活圈互動服務(wù)機制。
3 實現(xiàn)過程
3.1 實現(xiàn)平臺
要使基于LBS的校園服務(wù)能夠體現(xiàn)出來,這里選擇以智能手機為媒介,因為它的普及率很高。據(jù)工信部統(tǒng)計數(shù)據(jù),2014 年一月底中國手機用戶達12.86 億,但智能手機仍有很大的發(fā)展空間[2]。智能手機目前主要分為android和ios兩大平臺,主要討論android平臺的實現(xiàn)。
Android平臺的基礎(chǔ)性開發(fā)主要包含界面的布局設(shè)計,基本、高級控件的運用;技術(shù)性開發(fā)主要包含消息提示,Activity的運用,服務(wù)與消息廣播以及數(shù)據(jù)存儲;應(yīng)用型開發(fā)主要包含網(wǎng)絡(luò)應(yīng)用開發(fā),地理位置應(yīng)用開發(fā),以及音頻、視頻應(yīng)用等等。
3.2 模塊化設(shè)計
智慧校園系統(tǒng)在邏輯上可分為4個大的模塊:數(shù)據(jù)存儲模塊,GPS模塊,通信模塊,應(yīng)用模塊,其中數(shù)據(jù)存儲模塊、通信模塊、GPS處理模塊組成了底層服務(wù)器模塊。
1)數(shù)據(jù)存儲模塊
采用MySQL數(shù)據(jù)庫存儲和管理數(shù)據(jù)。
2)GPS模塊
GPS基礎(chǔ)模塊:使用Android類庫中的GPS API,獲取相應(yīng)GPS信息,并發(fā)送給主程序或直接給服務(wù)器。
GPS處理模塊:由于客戶端性能原因,大多數(shù)GPS應(yīng)用都要經(jīng)過后臺服務(wù)器進行處理,向客戶端返回相應(yīng)結(jié)果,在這里, GPS服務(wù)程序在后臺為客戶端提供了強大的運算能力,客戶端只需要發(fā)送自己的GPS信息,無需耗費其他任何資源,便可以得到快捷的GPS服務(wù)。
3)通信模塊
完成服務(wù)器到客戶端,客戶端到服務(wù)器的通信過程,包括客戶端發(fā)送Http請求后,服務(wù)器響應(yīng)請求并做出應(yīng)答和服務(wù)器主動推送信息到客戶端等通信過程。
4)應(yīng)用模塊
以學生教師生活為背景,為其提供一系列資訊和服務(wù)。該系統(tǒng)突破傳統(tǒng)網(wǎng)絡(luò)的限制,更多地在移動環(huán)境下,提供基于平臺的動態(tài)更新服務(wù)、個性化推薦服務(wù)、基于地理位置的查詢問答服務(wù)等。
3.3 關(guān)鍵技術(shù)
3.3.1 基于TCP協(xié)議的Socket通信
1)Socket簡介
所謂socket通常也稱作"套接字",Socket是建立在傳輸層協(xié)議上的一種套接字規(guī)范 它定義兩臺計算機間進行通信的規(guī)范也是一種編程規(guī)范[3]。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求[4]。java .net包中包含Socket和ServerSocket類庫,Socket用于建立網(wǎng)絡(luò)連接,ServerSocket則用于服務(wù)器端。連接成功時,在應(yīng)用程序兩端會產(chǎn)生一個Socket實例,對這個實例進行操作就完成所需會話。套接字沒有級別的區(qū)分,不管是在服務(wù)器端還是在客戶端,在網(wǎng)絡(luò)連接中,它們都是平等的。
2)Socket通信過程
Socket之間的連接過程分為三個方面。
服務(wù)器監(jiān)聽:服務(wù)器端Socket不需要對客戶端Socket進行定位,而是時刻監(jiān)測是否有來自客戶端的連接請求,處于等待狀態(tài)。
客戶端請求:客戶端Socket向服務(wù)器端Socket發(fā)出連接請求。并且客戶端Socket必須給出它要連接的服務(wù)器端Socket的地址和端口號。
連接確認:當服務(wù)器端監(jiān)聽到客戶端的連接請求時,建議一個新線程,并把服務(wù)器端Socket的相關(guān)描述發(fā)給客戶端,表示連接建立。連接建立后,服務(wù)器端重新處于監(jiān)聽狀態(tài)。
3)基于TCP的Socket編程
TCP(Transmission Control Protocol),是面向連接的協(xié)議。通過TCP協(xié)議傳輸所得到的是一個無差錯的有序的數(shù)據(jù)流。對于成對的socket之間(分別位于發(fā)送端和接收端)必須建立連接,以便在TCP協(xié)議的上能進行通信。當其中一個socket(通常都是服務(wù)器端socket)等待建立連接時,另一個socket可以發(fā)出建立連接請求,一旦套接字連接建立,基于TCP協(xié)議,它們就可以進行雙向的數(shù)據(jù)傳輸,均支持發(fā)送和接收數(shù)據(jù)。如圖2描述了基于TCP協(xié)議的socket建立連接、通信過程以及編程函數(shù)。
3.4 APP測試
4 結(jié)束語
它的主旨是為了實現(xiàn)一個基于LBS的校園服務(wù),選擇android平臺是由于智能手機的普及以及android智能手機在市場中占有比例遠遠高于其他系統(tǒng)。根據(jù)師生的出行、生活情況,向其推送有關(guān)地理位置的信息,并支持與服務(wù)器端的交流,方便了他們的生活。區(qū)別于高德地圖等一類軟件,校園服務(wù)側(cè)重于區(qū)域內(nèi)的服務(wù),便于管理和維護。
參考文獻:
[1] 宋曉東, 吳孟泉. 基于位置的服務(wù)技術(shù)及應(yīng)用[J]. 東北測繪, 2003(5): 2.
[2] 中華人民共和國工業(yè)和信息化部. 2014 年通信運營業(yè)統(tǒng)計公報[EB/OL].(2015-01-20)[2015-01-27].
[3] 余琴, 趙振華. 基于GPRS的SOCKET通信的應(yīng)用研究[J]. 應(yīng)用天地, 2005(11): 52-57
[4] 侯曉強, 徐春榮, 勾海波. Java服務(wù)器編程實例[M]. 北京: 清華大學出版社, 2003: 20-181
[5] 許海玲. 互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J]. 軟件學報, 2009, 20(2): 350-362.