馬海兵 ,蔡永香,黃智偉,黃樂樂,陳浩,萬莉華
(長江大學地球科學學院,湖北 武漢 430100)
隨著移動互聯(lián)網(wǎng)技術的蓬勃發(fā)展和移動智能終端的日益普及,基于3G 技術的移動互聯(lián)網(wǎng)應用也日益增多。高校中有80%以上的大學生使用Android 系統(tǒng)的移動智能終端[1],移動校園應用的發(fā)展趨勢給高校的數(shù)字化校園建設提出了新要求[2]。國外許多知名大學如斯坦福大學、杜克大學、耶魯大學、加州伯克利大學等都紛紛推出了自己的移動應用[3],這些應用體現(xiàn)了“一人一機,走遍校園”便捷的、一站式、全方位、個性化、主動式的現(xiàn)代化高校服務管理理念[4]。
長江大學武漢校區(qū)剛建成不久,地處偏遠的蔡甸郊區(qū)。根據(jù)全校不同院系專業(yè)內發(fā)放的300 份問卷調查結果顯示,有80%以上的學生認為現(xiàn)在的校園存在著師生獲取校園資訊不便、出行困難等問題,并希望建立移動校園平臺,為師生帶來工作與生活上的便利。為了解決以上問題,本文在分析并研究了J2EE 的結構基礎上,采用網(wǎng)絡信息抓取與SQLite 數(shù)據(jù)庫技術實現(xiàn)現(xiàn)有網(wǎng)絡數(shù)據(jù)的獲取與離線存儲,并結合ArcGIS 平臺設計開發(fā)了校園移動GIS,讓師生享受一站式的4A(Anything、Anytime、Anywhere、Anybody)學習與辦公服務。
如圖1所示,系統(tǒng)以B/S(Browser/Server)結構為主,M/S(Mobile/Server)結構為輔。服務層中的校園移動GIS 服務器由Web 應用服務器與GIS 應用服務器組成。其中Web 應用服務器采用Apache Tomcat 7.0,GIS 應用服務器采用ArcGIS Server 10.0。服務端數(shù)據(jù)庫平臺采用SQL Server 2008 R2,實現(xiàn)對空間數(shù)據(jù)和屬性數(shù)據(jù)的一體化管理。
圖1 系統(tǒng)總體結構圖
根據(jù)調研和需求分析[5]的結果,系統(tǒng)可分為3 個子系統(tǒng),每個子系統(tǒng)又包含若干個功能,各功能模塊的劃分情況如圖2所示。
圖2 系統(tǒng)功能結構圖
(1)基礎信息服務子系統(tǒng)
為了避免校園信息網(wǎng)絡管理系統(tǒng)的重復建設,該子系統(tǒng)需要通過Http 請求方式與校園網(wǎng)連接,從校園網(wǎng)上獲取動態(tài)信息,實現(xiàn)對現(xiàn)有資源的深度整合。目前主要提供師生需要頻繁獲取的三類信息:
①校園新聞動態(tài):將學校重要部門的新聞消息整合在手機端,師生通過移動客戶端即能方便快捷的獲取學校的新聞消息,做到了信息的一站式閱讀;
②個人成績信息:學生直接采用在教務處的賬號、密碼即可登錄查詢自己的成績,無需重新創(chuàng)建賬號系統(tǒng);
③校園師生課表:從校園教務信息后臺獲取課程信息,并離線保存在客戶端數(shù)據(jù)庫,當課程被調整時,用戶可以自定義編輯保存課程信息。這樣,師生可以快速,方便地掌握詳細的課程信息。
(2)空間信息服務子系統(tǒng)
移動信息服務GIS 也應該具備作為GIS 應該具備的基本功能。該子系統(tǒng)用來完成GIS 的基本功能,包括地圖的基本操作、地圖定位與地圖導航以及空間查詢分析等功能:
①基本操作:對地圖進行縮放,漫游,幾何量算,快速瀏覽校園全貌;確定分級內容和級數(shù),實現(xiàn)對校園地理信息的分類分級顯示;
②地圖服務:分為空間定位和室外地圖導航;室外導航利用GPS 定位獲取用戶當前位置,根據(jù)用戶在地圖上選取的目的地實現(xiàn)地圖的導航;
③空間查詢分析:圖屬信息互查,用戶可以與地圖交互查詢相關要素的屬性信息,也可以通過輸入要素名稱或語音搜索查詢相關圖形信息;利用Dijkstra 路徑搜索算法,根據(jù)起止點進行路徑分析規(guī)劃出最短路徑[6];利用緩沖分析查詢校園附近的基礎服務設施。
(3)LBS(Location-Based Service 即基于位置的服務)子系統(tǒng)
該子系統(tǒng)用來提供基于地理位置的信息服務,為生活在偏遠校區(qū)的師生提供生活上的便利。提供拼車業(yè)務,解決讓師生煩惱的交通不便的問題;提供住宿信息、餐飲信息以及周圍的娛樂信息等,為師生提供貼心的服務。
①拼車業(yè)務:乘客用戶和司機用戶擁有不同的登錄入口,乘客通過軟件發(fā)布拼車信息,并處理司機的拼車邀請,司機可以查看乘客的拼車消息,在地圖上瀏覽拼車路線,并發(fā)送拼車邀請來完成整個拼車業(yè)務;
②住宿信息查詢:通過GPS 定位獲取用戶當前位置,通過緩沖分析查詢學校周邊賓館信息并在地圖上冒泡顯示,點擊就進入賓館詳細信息;
③娛樂信息查詢:通過GPS 定位獲取用戶當前位置,通過緩沖分析查詢學校周邊娛樂信息并在地圖上冒泡顯示,點擊就進入相關娛樂場所的詳細信息;
④餐飲信息查詢:查詢學校周邊的餐飲信息,根據(jù)店鋪類型進行快速篩選,提供查看店鋪菜單、電話訂餐、店鋪評分和分享當前位置等功能。
該系統(tǒng)使用的數(shù)據(jù)庫包含空間數(shù)據(jù)庫與屬性數(shù)據(jù)庫,其中,空間數(shù)據(jù)庫存儲校園地圖各圖層信息。將數(shù)字化好的校園地圖劃分圖層,主要分為點、線、面三大圖層,其中,點圖層主要包括各商鋪及建筑物的位置點,線圖層包括校園主要干道,面圖層主要包括綠地及各建筑物面。屬性數(shù)據(jù)庫存放校內外采集的基礎數(shù)據(jù),主要有商家信息,用戶信息等。
系統(tǒng)數(shù)據(jù)庫總體設計如表1所示。
表1 數(shù)據(jù)庫設計表
系統(tǒng)結合GIS、Android、J2EE 的技術,采用了目前主流的三層架構設計。客戶端基于Android 平臺,采用java 語言和Http 通信技術開發(fā)而成[7],服務端采用了Structs2 +Spring3 的輕量級框架,以SQLServer 2008 R2 作為數(shù)據(jù)庫平臺,以ArcGIS Server 作為地圖服務器,采用tomcat 來構建Web 服務。涉及的主要技術有以下幾點:
①針對服務端的開發(fā)性能問題,采用J2EE 體系架構。因為它提供的企業(yè)級計算模式所需的各種服務,使得部署在J2EE 平臺上的多層應用系統(tǒng)可獲得高可用性、安全性、可擴展性和可靠性等性能[8]。
②針對客戶端的數(shù)據(jù)緩存問題,采用SQLite 數(shù)據(jù)庫實現(xiàn),因為SQLite 是一款輕型的數(shù)據(jù)庫,是遵守ACID 的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設計目標是嵌入式的,目前已經在很多嵌入式產品中被使用,且占用的資源非常低,在嵌入式設備中,只需要幾百K 的內存。本應用程序采用SQLite 存取基礎數(shù)據(jù),比如課程信息更改周期長,可以將請求得到的數(shù)據(jù)保存在本地,使用的時候直接操作本地數(shù)據(jù)庫,這樣效率高,應用程序操作起來更流暢,用戶體驗更佳。
③針對獲取網(wǎng)頁動態(tài)數(shù)據(jù)的問題,我們采用網(wǎng)頁信息抓取技術,利用現(xiàn)有的Jsoup 包抓取網(wǎng)頁上的信息。因為Jsoup 是一款用java 語言開發(fā)的HTML 解析器,可直接解析出指定的URL 地址、HTML 文本內容。它提供一套非常省力的API,可通過DOM(Document Object Model),CSS 以及類似于jQuery 的操作方法來取出和操作信息。
在系統(tǒng)實現(xiàn)過程中,首先對系統(tǒng)界面進行原型化設計,針對設計好的界面進行實現(xiàn);然后對系統(tǒng)所用到的數(shù)據(jù)進行收集整理并入庫;最后基于實現(xiàn)的界面和采集的數(shù)據(jù)進行功能開發(fā)。
為了快速顯示地圖的需要,客戶端也存儲了部分靜態(tài)地圖數(shù)據(jù),采用ArcGIS 10.2 Geodatabase 進行管理;服務器端屬性數(shù)據(jù)與空間數(shù)據(jù)采用一體化存儲,利用ArcSDE10.0 實現(xiàn)SQL Server2008 R2 對空間數(shù)據(jù)的存儲與管理。表現(xiàn)層部分以對手機客戶端的接口(數(shù)據(jù)訪問接口,即客戶端所有數(shù)據(jù)通過訪問該接口獲得)形式存在,手機客戶端、服務端之間數(shù)據(jù)傳輸格式采用易于閱讀和編寫并易于機器解析生成的JSON 數(shù)據(jù)格式。服務端以鍵值對的形式{“key”:“value”}組織數(shù)據(jù),如:{“resrlt”:“success”}。易于閱讀和編寫,客戶端解析時只需要通過對應的鍵取得相應的值。
手機客戶端的開發(fā)工具除了Eclipse 外,還需要安裝Android SDK 2.2 及其相關開發(fā)插件ADT,服務端是在MyEclipse 10.0 下采用J2EE 技術框架開發(fā)。
課表信息通過網(wǎng)絡數(shù)據(jù)抓取和頁面布局實現(xiàn),界面如圖3所示;長大拼車與生活達人通過客戶端向服務端發(fā)送請求從而返回數(shù)據(jù)來實現(xiàn),界面如圖4、5 所示;校園地圖模塊一進入就能看到數(shù)字化的校園地圖,用戶可以基于該地圖做一系列的操作,核心的操作如導航、路徑分析等都通過調用ArcGIS for Android API實現(xiàn)[9],如圖6所示。
圖3 課表信息界面
圖4 長大拼車界面
圖5 生活達人界面
圖6 校園地圖界面
本文在分析了J2EE 的體系架構的基礎上設計并實現(xiàn)了基于J2EE 的校園移動GIS,系統(tǒng)的服務范圍定位于校園,以師生需求為中心設計功能。通過對現(xiàn)有數(shù)據(jù)資源的整合,為師生提供學習、餐飲、娛樂、出行等方面的個性化信息服務。從移動校園的應用前景、服務對象來看,該系統(tǒng)具有廣泛的發(fā)展前途。然而,該系統(tǒng)功能目前并不完善,針對新生入學,后續(xù)可以加入校園迎新功能,真實模擬新生報到的所有流程,為學校減輕人力負擔。真正實現(xiàn)一個信息展示與互動的移動校園平臺,為后來的研究提供一個較好的參考,具有一定的推廣價值。
[1]岳國斌,王潔,張增艷.基于Android 平臺的移動智慧校園系統(tǒng)設計與實現(xiàn)[J].網(wǎng)絡與通信,2012,24:79 ~80.
[2]劉歡,盧蓓蓉,馬晨輝.淺談高校校園移動應用開發(fā)[J].武漢大學學報(理學版),2012,58(S1):171 ~174.
[3]張凱,宓詠,閆華等.“i 復旦”——復旦大學校園移動應用的開發(fā)與實踐[J].武漢大學學報,2012,58(S1):265~270.
[4]曹敏.移動校園的可行性分析[J].理論視野,2011(7):266.
[5]吳信才等.地理信息系統(tǒng)設計與實現(xiàn)[M].第二版.北京:電子工業(yè)出版社,2010:22 ~24.
[6]鄔琦,林靖,楊江濤.基于Android 的校園導航系統(tǒng)路徑規(guī)劃的研究與應用[J].電腦知識與技術,2014 ,10(6):1294 ~1297.
[7]吳林,秦超,姜良軍等.LBS 與SNS 下的信息服務平臺設計與實現(xiàn)[J].地理空間信息,2012 ,10(2):82 ~84.
[8]鄭俊峰,康建初.基于J2EE 模式的移動電子商務平臺[J].計算機工程與設計,2003,24 (11):84 ~88.
[9]周靖雄,陳友飛.基于ArcGIS Android API 的GPS 手機導航系統(tǒng)關鍵技術的研究與實現(xiàn)[J].數(shù)字技術與應用,2012(4):45 ~48.