馬海兵 ,蔡永香,黃智偉,黃樂樂,陳浩,萬莉華
(長江大學(xué)地球科學(xué)學(xué)院,湖北 武漢 430100)
隨著移動互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展和移動智能終端的日益普及,基于3G 技術(shù)的移動互聯(lián)網(wǎng)應(yīng)用也日益增多。高校中有80%以上的大學(xué)生使用Android 系統(tǒng)的移動智能終端[1],移動校園應(yīng)用的發(fā)展趨勢給高校的數(shù)字化校園建設(shè)提出了新要求[2]。國外許多知名大學(xué)如斯坦福大學(xué)、杜克大學(xué)、耶魯大學(xué)、加州伯克利大學(xué)等都紛紛推出了自己的移動應(yīng)用[3],這些應(yīng)用體現(xiàn)了“一人一機,走遍校園”便捷的、一站式、全方位、個性化、主動式的現(xiàn)代化高校服務(wù)管理理念[4]。
長江大學(xué)武漢校區(qū)剛建成不久,地處偏遠的蔡甸郊區(qū)。根據(jù)全校不同院系專業(yè)內(nèi)發(fā)放的300 份問卷調(diào)查結(jié)果顯示,有80%以上的學(xué)生認為現(xiàn)在的校園存在著師生獲取校園資訊不便、出行困難等問題,并希望建立移動校園平臺,為師生帶來工作與生活上的便利。為了解決以上問題,本文在分析并研究了J2EE 的結(jié)構(gòu)基礎(chǔ)上,采用網(wǎng)絡(luò)信息抓取與SQLite 數(shù)據(jù)庫技術(shù)實現(xiàn)現(xiàn)有網(wǎng)絡(luò)數(shù)據(jù)的獲取與離線存儲,并結(jié)合ArcGIS 平臺設(shè)計開發(fā)了校園移動GIS,讓師生享受一站式的4A(Anything、Anytime、Anywhere、Anybody)學(xué)習(xí)與辦公服務(wù)。
如圖1所示,系統(tǒng)以B/S(Browser/Server)結(jié)構(gòu)為主,M/S(Mobile/Server)結(jié)構(gòu)為輔。服務(wù)層中的校園移動GIS 服務(wù)器由Web 應(yīng)用服務(wù)器與GIS 應(yīng)用服務(wù)器組成。其中Web 應(yīng)用服務(wù)器采用Apache Tomcat 7.0,GIS 應(yīng)用服務(wù)器采用ArcGIS Server 10.0。服務(wù)端數(shù)據(jù)庫平臺采用SQL Server 2008 R2,實現(xiàn)對空間數(shù)據(jù)和屬性數(shù)據(jù)的一體化管理。

圖1 系統(tǒng)總體結(jié)構(gòu)圖
根據(jù)調(diào)研和需求分析[5]的結(jié)果,系統(tǒng)可分為3 個子系統(tǒng),每個子系統(tǒng)又包含若干個功能,各功能模塊的劃分情況如圖2所示。

圖2 系統(tǒng)功能結(jié)構(gòu)圖
(1)基礎(chǔ)信息服務(wù)子系統(tǒng)
為了避免校園信息網(wǎng)絡(luò)管理系統(tǒng)的重復(fù)建設(shè),該子系統(tǒng)需要通過Http 請求方式與校園網(wǎng)連接,從校園網(wǎng)上獲取動態(tài)信息,實現(xiàn)對現(xiàn)有資源的深度整合。目前主要提供師生需要頻繁獲取的三類信息:
①校園新聞動態(tài):將學(xué)校重要部門的新聞消息整合在手機端,師生通過移動客戶端即能方便快捷的獲取學(xué)校的新聞消息,做到了信息的一站式閱讀;
②個人成績信息:學(xué)生直接采用在教務(wù)處的賬號、密碼即可登錄查詢自己的成績,無需重新創(chuàng)建賬號系統(tǒng);
③校園師生課表:從校園教務(wù)信息后臺獲取課程信息,并離線保存在客戶端數(shù)據(jù)庫,當課程被調(diào)整時,用戶可以自定義編輯保存課程信息。這樣,師生可以快速,方便地掌握詳細的課程信息。
(2)空間信息服務(wù)子系統(tǒng)
移動信息服務(wù)GIS 也應(yīng)該具備作為GIS 應(yīng)該具備的基本功能。該子系統(tǒng)用來完成GIS 的基本功能,包括地圖的基本操作、地圖定位與地圖導(dǎo)航以及空間查詢分析等功能:
①基本操作:對地圖進行縮放,漫游,幾何量算,快速瀏覽校園全貌;確定分級內(nèi)容和級數(shù),實現(xiàn)對校園地理信息的分類分級顯示;
②地圖服務(wù):分為空間定位和室外地圖導(dǎo)航;室外導(dǎo)航利用GPS 定位獲取用戶當前位置,根據(jù)用戶在地圖上選取的目的地實現(xiàn)地圖的導(dǎo)航;
③空間查詢分析:圖屬信息互查,用戶可以與地圖交互查詢相關(guān)要素的屬性信息,也可以通過輸入要素名稱或語音搜索查詢相關(guān)圖形信息;利用Dijkstra 路徑搜索算法,根據(jù)起止點進行路徑分析規(guī)劃出最短路徑[6];利用緩沖分析查詢校園附近的基礎(chǔ)服務(wù)設(shè)施。
(3)LBS(Location-Based Service 即基于位置的服務(wù))子系統(tǒng)
該子系統(tǒng)用來提供基于地理位置的信息服務(wù),為生活在偏遠校區(qū)的師生提供生活上的便利。提供拼車業(yè)務(wù),解決讓師生煩惱的交通不便的問題;提供住宿信息、餐飲信息以及周圍的娛樂信息等,為師生提供貼心的服務(wù)。
①拼車業(yè)務(wù):乘客用戶和司機用戶擁有不同的登錄入口,乘客通過軟件發(fā)布拼車信息,并處理司機的拼車邀請,司機可以查看乘客的拼車消息,在地圖上瀏覽拼車路線,并發(fā)送拼車邀請來完成整個拼車業(yè)務(wù);
②住宿信息查詢:通過GPS 定位獲取用戶當前位置,通過緩沖分析查詢學(xué)校周邊賓館信息并在地圖上冒泡顯示,點擊就進入賓館詳細信息;
③娛樂信息查詢:通過GPS 定位獲取用戶當前位置,通過緩沖分析查詢學(xué)校周邊娛樂信息并在地圖上冒泡顯示,點擊就進入相關(guān)娛樂場所的詳細信息;
④餐飲信息查詢:查詢學(xué)校周邊的餐飲信息,根據(jù)店鋪類型進行快速篩選,提供查看店鋪菜單、電話訂餐、店鋪評分和分享當前位置等功能。
該系統(tǒng)使用的數(shù)據(jù)庫包含空間數(shù)據(jù)庫與屬性數(shù)據(jù)庫,其中,空間數(shù)據(jù)庫存儲校園地圖各圖層信息。將數(shù)字化好的校園地圖劃分圖層,主要分為點、線、面三大圖層,其中,點圖層主要包括各商鋪及建筑物的位置點,線圖層包括校園主要干道,面圖層主要包括綠地及各建筑物面。屬性數(shù)據(jù)庫存放校內(nèi)外采集的基礎(chǔ)數(shù)據(jù),主要有商家信息,用戶信息等。
系統(tǒng)數(shù)據(jù)庫總體設(shè)計如表1所示。

表1 數(shù)據(jù)庫設(shè)計表
系統(tǒng)結(jié)合GIS、Android、J2EE 的技術(shù),采用了目前主流的三層架構(gòu)設(shè)計。客戶端基于Android 平臺,采用java 語言和Http 通信技術(shù)開發(fā)而成[7],服務(wù)端采用了Structs2 +Spring3 的輕量級框架,以SQLServer 2008 R2 作為數(shù)據(jù)庫平臺,以ArcGIS Server 作為地圖服務(wù)器,采用tomcat 來構(gòu)建Web 服務(wù)。涉及的主要技術(shù)有以下幾點:
①針對服務(wù)端的開發(fā)性能問題,采用J2EE 體系架構(gòu)。因為它提供的企業(yè)級計算模式所需的各種服務(wù),使得部署在J2EE 平臺上的多層應(yīng)用系統(tǒng)可獲得高可用性、安全性、可擴展性和可靠性等性能[8]。
②針對客戶端的數(shù)據(jù)緩存問題,采用SQLite 數(shù)據(jù)庫實現(xiàn),因為SQLite 是一款輕型的數(shù)據(jù)庫,是遵守ACID 的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中被使用,且占用的資源非常低,在嵌入式設(shè)備中,只需要幾百K 的內(nèi)存。本應(yīng)用程序采用SQLite 存取基礎(chǔ)數(shù)據(jù),比如課程信息更改周期長,可以將請求得到的數(shù)據(jù)保存在本地,使用的時候直接操作本地數(shù)據(jù)庫,這樣效率高,應(yīng)用程序操作起來更流暢,用戶體驗更佳。
③針對獲取網(wǎng)頁動態(tài)數(shù)據(jù)的問題,我們采用網(wǎng)頁信息抓取技術(shù),利用現(xiàn)有的Jsoup 包抓取網(wǎng)頁上的信息。因為Jsoup 是一款用java 語言開發(fā)的HTML 解析器,可直接解析出指定的URL 地址、HTML 文本內(nèi)容。它提供一套非常省力的API,可通過DOM(Document Object Model),CSS 以及類似于jQuery 的操作方法來取出和操作信息。
在系統(tǒng)實現(xiàn)過程中,首先對系統(tǒng)界面進行原型化設(shè)計,針對設(shè)計好的界面進行實現(xiàn);然后對系統(tǒng)所用到的數(shù)據(jù)進行收集整理并入庫;最后基于實現(xiàn)的界面和采集的數(shù)據(jù)進行功能開發(fā)。
為了快速顯示地圖的需要,客戶端也存儲了部分靜態(tài)地圖數(shù)據(jù),采用ArcGIS 10.2 Geodatabase 進行管理;服務(wù)器端屬性數(shù)據(jù)與空間數(shù)據(jù)采用一體化存儲,利用ArcSDE10.0 實現(xiàn)SQL Server2008 R2 對空間數(shù)據(jù)的存儲與管理。表現(xiàn)層部分以對手機客戶端的接口(數(shù)據(jù)訪問接口,即客戶端所有數(shù)據(jù)通過訪問該接口獲得)形式存在,手機客戶端、服務(wù)端之間數(shù)據(jù)傳輸格式采用易于閱讀和編寫并易于機器解析生成的JSON 數(shù)據(jù)格式。服務(wù)端以鍵值對的形式{“key”:“value”}組織數(shù)據(jù),如:{“resrlt”:“success”}。易于閱讀和編寫,客戶端解析時只需要通過對應(yīng)的鍵取得相應(yīng)的值。
手機客戶端的開發(fā)工具除了Eclipse 外,還需要安裝Android SDK 2.2 及其相關(guān)開發(fā)插件ADT,服務(wù)端是在MyEclipse 10.0 下采用J2EE 技術(shù)框架開發(fā)。
課表信息通過網(wǎng)絡(luò)數(shù)據(jù)抓取和頁面布局實現(xiàn),界面如圖3所示;長大拼車與生活達人通過客戶端向服務(wù)端發(fā)送請求從而返回數(shù)據(jù)來實現(xiàn),界面如圖4、5 所示;校園地圖模塊一進入就能看到數(shù)字化的校園地圖,用戶可以基于該地圖做一系列的操作,核心的操作如導(dǎo)航、路徑分析等都通過調(diào)用ArcGIS for Android API實現(xiàn)[9],如圖6所示。

圖3 課表信息界面

圖4 長大拼車界面

圖5 生活達人界面

圖6 校園地圖界面
本文在分析了J2EE 的體系架構(gòu)的基礎(chǔ)上設(shè)計并實現(xiàn)了基于J2EE 的校園移動GIS,系統(tǒng)的服務(wù)范圍定位于校園,以師生需求為中心設(shè)計功能。通過對現(xiàn)有數(shù)據(jù)資源的整合,為師生提供學(xué)習(xí)、餐飲、娛樂、出行等方面的個性化信息服務(wù)。從移動校園的應(yīng)用前景、服務(wù)對象來看,該系統(tǒng)具有廣泛的發(fā)展前途。然而,該系統(tǒng)功能目前并不完善,針對新生入學(xué),后續(xù)可以加入校園迎新功能,真實模擬新生報到的所有流程,為學(xué)校減輕人力負擔。真正實現(xiàn)一個信息展示與互動的移動校園平臺,為后來的研究提供一個較好的參考,具有一定的推廣價值。
[1]岳國斌,王潔,張增艷.基于Android 平臺的移動智慧校園系統(tǒng)設(shè)計與實現(xiàn)[J].網(wǎng)絡(luò)與通信,2012,24:79 ~80.
[2]劉歡,盧蓓蓉,馬晨輝.淺談高校校園移動應(yīng)用開發(fā)[J].武漢大學(xué)學(xué)報(理學(xué)版),2012,58(S1):171 ~174.
[3]張凱,宓詠,閆華等.“i 復(fù)旦”——復(fù)旦大學(xué)校園移動應(yīng)用的開發(fā)與實踐[J].武漢大學(xué)學(xué)報,2012,58(S1):265~270.
[4]曹敏.移動校園的可行性分析[J].理論視野,2011(7):266.
[5]吳信才等.地理信息系統(tǒng)設(shè)計與實現(xiàn)[M].第二版.北京:電子工業(yè)出版社,2010:22 ~24.
[6]鄔琦,林靖,楊江濤.基于Android 的校園導(dǎo)航系統(tǒng)路徑規(guī)劃的研究與應(yīng)用[J].電腦知識與技術(shù),2014 ,10(6):1294 ~1297.
[7]吳林,秦超,姜良軍等.LBS 與SNS 下的信息服務(wù)平臺設(shè)計與實現(xiàn)[J].地理空間信息,2012 ,10(2):82 ~84.
[8]鄭俊峰,康建初.基于J2EE 模式的移動電子商務(wù)平臺[J].計算機工程與設(shè)計,2003,24 (11):84 ~88.
[9]周靖雄,陳友飛.基于ArcGIS Android API 的GPS 手機導(dǎo)航系統(tǒng)關(guān)鍵技術(shù)的研究與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2012(4):45 ~48.