劉鵬 龐小平 艾松濤
(1武漢大學(xué)中國南極測繪研究中心,湖北武漢430079;2極地測繪科學(xué)國家測繪局重點(diǎn)實驗室,湖北武漢430079;3極地測繪遙感與全球環(huán)境變化實驗室,湖北武漢430079)
截至2013年上半年,中國智能手機(jī)用戶規(guī)模已達(dá)到4.5億[1]。移動網(wǎng)民數(shù)量的快速增長為移動互聯(lián)網(wǎng)發(fā)展構(gòu)建了堅實的用戶基礎(chǔ),越來越多的用戶已經(jīng)習(xí)慣使用智能移動終端來處理與個人生活、工作、學(xué)習(xí)相關(guān)的事務(wù)[2]。目前,市場上并存的智能手機(jī)平臺較多,既有傳統(tǒng)的塞班[3],也有日益興盛的 Android[4]和 iOS[5]。2013年第二季度,中國智能手機(jī)市場操作系統(tǒng)分布中,Android份額進(jìn)一步擴(kuò)大至74.5%,iOS占據(jù)11.4%,兩者成為智能操作系統(tǒng)的主流平臺[1]。
極地信息化建設(shè)促進(jìn)了科研成果的交流與共享,并為社會公眾提供了解極地考察的窗口。國內(nèi)針對極地的信息平臺建設(shè)已經(jīng)取得極大進(jìn)展,主要包括艾松濤等[6]開發(fā)的雪龍在線平臺將“雪龍?zhí)枴迸c國內(nèi)的網(wǎng)絡(luò)信息平臺連接起來,實現(xiàn)了雪龍船與科考儀器數(shù)據(jù)的互換以及基于互聯(lián)網(wǎng)的動態(tài)數(shù)據(jù)發(fā)布;李升貴[7]提出和實現(xiàn)的極地信息平臺針對不同應(yīng)用領(lǐng)域和用戶,統(tǒng)一管理極地基礎(chǔ)信息,分層次實現(xiàn)了極地信息應(yīng)用;程文芳等[8]實現(xiàn)的極地標(biāo)本資源共享平臺解決了分布存儲在全國各地的極地標(biāo)本樣品資源共享問題。這些信息平臺為極地信息化建設(shè)奠定了堅實基礎(chǔ),但都是基于因特網(wǎng)建設(shè)實施的,數(shù)據(jù)的處理與展示局限于PC端,目前國內(nèi)與極地相關(guān)的移動互聯(lián)網(wǎng)應(yīng)用產(chǎn)品相當(dāng)缺乏。
鑒于當(dāng)前移動互聯(lián)網(wǎng)的快速發(fā)展以及移動終端設(shè)備的智能化,用戶獲取實時信息的方式逐漸從PC端轉(zhuǎn)向了移動端,同時許多突發(fā)問題要求在移動的環(huán)境下完成快速決策。本文研究的極地移動信息平臺(“掌上兩極”)一方面可以方便極地管理部門、科研人員和社會公眾快速獲取極地最新信息,另一方面可以達(dá)到移動平臺監(jiān)控的作用,為相關(guān)工作人員提供一定的應(yīng)急決策支持。根據(jù)前面分析的智能手機(jī)平臺類型,“掌上兩極”推出了Android和iOS兩個版本。
“掌上兩極”的建設(shè)以實現(xiàn)南北極各個考察站實時數(shù)據(jù)的快速查詢與共享為目標(biāo),系統(tǒng)采用客戶端和服務(wù)器的解決方案,結(jié)合多線程和Ajax異步通訊技術(shù),配備Oracle作為數(shù)據(jù)庫,設(shè)計實現(xiàn)了極地新聞、極地相關(guān)數(shù)據(jù)的瀏覽查詢等功能。
為保證數(shù)據(jù)的安全性以及不同客戶端訪問的統(tǒng)一性,“掌上兩極”采用典型的客戶端和服務(wù)器架構(gòu),數(shù)據(jù)存儲在服務(wù)器端,客戶端只負(fù)責(zé)界面布局與數(shù)據(jù)展現(xiàn),減輕了客戶端的負(fù)載量??蛻舳瞬捎肕VC(Model-View-Controller)設(shè)計模式,最大限度降低模塊之間耦合度??蛻舳伺c服務(wù)器借助JSON接口進(jìn)行數(shù)據(jù)傳輸,不同客戶端訪問相同的數(shù)據(jù)接口,實現(xiàn)信息的統(tǒng)一,服務(wù)器端數(shù)據(jù)更新也可以及時反映到客戶端上。系統(tǒng)整體架構(gòu)如圖1所示。
通過“掌上兩極”可以方便地查看南北極各個考察站的最新數(shù)據(jù)。經(jīng)過前期需求調(diào)研與分析,根據(jù)功能特點(diǎn)將系統(tǒng)劃分成13個模塊:極地新聞、隊員報名、考察申報、極地論文、雪龍動態(tài)、極地影像、GPS、驗潮數(shù)據(jù)、極地氣象、極地地圖、網(wǎng)絡(luò)資源、極地專項、用戶反饋,各功能模塊內(nèi)容如圖2所示。
圖1 “掌上兩極”架構(gòu)圖Fig.1.System structure ofmobile polar
圖2 “掌上兩極”系統(tǒng)功能模塊圖Fig.2.System function modules ofmobile polar
(1)極地新聞 展示極地相關(guān)的新聞、公告等,方便用戶了解極地最新動態(tài),主要包括“媒體動態(tài)”、“重要記事”、“公告通知”三個欄目。
(2)雪龍動態(tài) 雪龍動態(tài)是一個連接雪龍船與國內(nèi)的信息平臺,借助于海事衛(wèi)星通訊鏈路將船上航行動態(tài)信息、考察儀器數(shù)據(jù)同國內(nèi)服務(wù)器進(jìn)行交換,并實時發(fā)布,為極地考察主管部門、考察隊員及其家屬、社會公眾提供一個了解雪龍船航行動態(tài)的窗口[6]。用戶可以查看“雪龍”號當(dāng)前位置、近期的實際航跡、歷史航跡,以及“雪龍?zhí)枴睂崟r監(jiān)控數(shù)據(jù)。
(3)極地影像、GPS等數(shù)據(jù)的查詢?yōu)g覽 查看南北極科學(xué)考察區(qū)域和“雪龍”號最新的GPS、氣象、驗潮以及影像數(shù)據(jù),通過這些數(shù)據(jù)可以了解最新的南北極現(xiàn)場,增加對極地環(huán)境的直觀認(rèn)識,支持區(qū)域包括長城站、中山站、黃河站、雪龍船和其他重點(diǎn)考察區(qū)域。
(4)事務(wù)處理 包括隊員報名、考察申報、極地論文模塊,提供一些與考察管理相關(guān)的事務(wù)處理操作,方便極地管理部門及科研工作人員使用。
(5)極地地圖 展示一系列反映極地測繪科學(xué)考察成果和南北極自然地理環(huán)境的地圖和影像,包括南極全圖、長城站、中山站、Dome A等區(qū)域,支持本地瀏覽和在線查看兩種方式。
Android平臺自底向上由四個層次組成[9]:Linux內(nèi)核層、Android運(yùn)行時庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)?。Android提供了豐富的類庫并且大部分為開源代碼,在應(yīng)用框架層Android開發(fā)人員擁有訪問框架APIs的全部權(quán)限?!罢粕蟽蓸O”Android客戶端采用JAVA語言開發(fā),并充分利用其面向?qū)ο蟆踩?、可移植性好等?yōu)勢,從服務(wù)器接口獲取數(shù)據(jù)時使用Android提供的AsyncTask類實現(xiàn)異步操作,避免阻塞UI線程。
iOS是iPhone、iPod以及iPad等設(shè)備的核心操作系統(tǒng),它重定義了移動設(shè)備可以實現(xiàn)的功能,并擁有良好的用戶操作體驗。iOS系統(tǒng)架構(gòu)分為4個層次[10]:核心操作系統(tǒng)層(Core OS Layer)、核心服務(wù)層(Core Services Layer)、媒體層(Media Layer)、可觸摸層(Cocoa Touch Layer)?!罢粕蟽蓸O”iOS客戶端開發(fā)完全遵照iOS四層結(jié)構(gòu)及應(yīng)用開發(fā)規(guī)范設(shè)計實現(xiàn),系統(tǒng)應(yīng)用到了 Foundation、UIKit和 Core Graphics等框架,開發(fā)語言為Object-C,在開發(fā)過程中使用NSThread技術(shù)實現(xiàn)數(shù)據(jù)異步讀取。
(1)增強(qiáng)用戶體驗 智能手機(jī)不僅僅要滿足應(yīng)用需求,更重要的是注重用戶體驗,“掌上兩極”客戶端在開發(fā)過程中,結(jié)合實際功能模塊,進(jìn)行了相應(yīng)的優(yōu)化:用戶在啟動時,程序自動檢測手機(jī)網(wǎng)絡(luò)連接是否正常,如果沒有檢測到可用網(wǎng)絡(luò),則提示用戶聯(lián)網(wǎng);通過手機(jī)內(nèi)置瀏覽器控件打開數(shù)據(jù)量較大的網(wǎng)頁時往往會很慢,例如“雪龍動態(tài)”頁面需要加載谷歌地圖,數(shù)據(jù)量比較大,為此程序中設(shè)置了一個進(jìn)度條顯示當(dāng)前頁面加載進(jìn)度;客戶端界面分別結(jié)合Android和iOS平臺特點(diǎn)精細(xì)化設(shè)計,簡潔易懂,具有強(qiáng)烈的視覺層次感等。
(2)異步加載數(shù)據(jù) 系統(tǒng)客戶端與服務(wù)器端之間通信采用HTTP協(xié)議,基于HTTP協(xié)議的交互方式有同步請求和異步請求兩種。應(yīng)用程序默認(rèn)情況下只會開啟一個主線程,它需要完成執(zhí)行代碼段、接收用戶交互事件、更新窗口等任務(wù)。同步請求在主線程中進(jìn)行,在請求過程中主線程不能響應(yīng)外部輸入,當(dāng)某一個任務(wù)耗時較長時就會出現(xiàn)主線程阻塞,界面無法響應(yīng)的情形,尤其是在國內(nèi)的網(wǎng)絡(luò)不穩(wěn)定的情況下。針對這種問題,客戶端在通過網(wǎng)絡(luò)獲取數(shù)據(jù)時新開辟一個線程實現(xiàn)數(shù)據(jù)異步加載,數(shù)據(jù)讀取完成后通知主線程更新用戶界面,避免阻塞主線程,給用戶良好的使用體驗。
(3)數(shù)據(jù)緩存 使用緩存可以讓應(yīng)用程序更快速地響應(yīng)用戶輸入,有時候需要將從遠(yuǎn)程服務(wù)器獲取的數(shù)據(jù)緩存起來,避免對同一個URL多次請求,由于“掌上兩極”客戶端數(shù)據(jù)基本都需要從服務(wù)器端獲得,所以進(jìn)行數(shù)據(jù)緩存很有必要。iOS客戶端中主要使用了內(nèi)存緩存,“雪龍動態(tài)”、“極地論文”和“隊員報名”模塊都是通過網(wǎng)頁控件直接打開網(wǎng)頁,并設(shè)置網(wǎng)頁緩存,再一次請求時則是從內(nèi)存中獲取數(shù)據(jù);“極地新聞”和“極地影像”模塊中接口數(shù)據(jù)采取一次性向服務(wù)器請求并保存在內(nèi)存中,切換瀏覽時直接從內(nèi)存讀取。Android客戶端中主要使用了本地緩存,用戶瀏覽過的圖片都會下載到本地,再次查看時直接從本地加載。緩存的應(yīng)用在減輕服務(wù)器負(fù)擔(dān)的同時提升客戶端響應(yīng)速度,另一方面也節(jié)省了上網(wǎng)流量。此外,“極地地圖”模塊中的地圖數(shù)據(jù)經(jīng)過預(yù)處理后直接打包到iOS安裝文件中,在提升用戶體驗的同時減少了網(wǎng)絡(luò)下載流量,對地圖分辨率要求高的用戶可以通過客戶端提供的接口瀏覽原始分辨率圖片。
經(jīng)過詳細(xì)的功能設(shè)計,人性化的界面布局和敏捷的開發(fā)流程,“掌上兩極”客戶端開發(fā)已基本完成。目前iOS以及Android版本分別已經(jīng)在App Store和Android應(yīng)用市場正式發(fā)布,其中Android客戶端適用于Android 2.3.3以上系統(tǒng),推薦使用大屏幕(4.0英寸及以上)手機(jī)進(jìn)行體驗;iOS客戶端支持 iPhone、iPod和iPad,適用于iOS5.0以上系統(tǒng),圖3為APP效果圖。
圖3 iOS(a)和 Android(b)客戶端主頁Fig.3.Home page of iOS(a)and Android(b)client
服務(wù)器的主要功能是提供數(shù)據(jù)交互,使用戶獲取最新的極地資訊,同時接收用戶的反饋信息,系統(tǒng)基于Apache發(fā)布Web服務(wù),利用PHP編譯動態(tài)頁面,采用輕量級的JSON作為數(shù)據(jù)交換格式。此外,為深入挖掘用戶的需求及使用習(xí)慣,服務(wù)器還需要對客戶端的請求進(jìn)行記錄,方便后續(xù)改進(jìn)軟件和服務(wù)。
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式[11]。它是基于JavaScript的一個子集,具有面向?qū)ο蟮奶攸c(diǎn),易于人閱讀和編寫,同時也易于機(jī)器解析和生成。服務(wù)器端在設(shè)計數(shù)據(jù)接口時兼顧以下幾個方面:(1)層次性,方便調(diào)用;(2)獨(dú)立性,接口之間耦合度低;(3)易于擴(kuò)展,滿足功能模塊擴(kuò)充需要。如圖4所示,服務(wù)器端對不同類型的極地數(shù)據(jù)進(jìn)行分級抽象,每一級中節(jié)點(diǎn)均采用“key-value”的表達(dá)形式,例如第一級中節(jié)點(diǎn)“03:極地氣象”,冒號前面為key,后面為value,這種表達(dá)方式易于JSON實現(xiàn);為保證用戶體驗,接口層次不宜超過5級,客戶端具體實現(xiàn)過程中最多使用了4級??蛻舳双@取數(shù)據(jù)需要從上到下逐級進(jìn)行,這種層級接口設(shè)計方式保證了客戶端訪問的靈活性,可按需獲取相應(yīng)層次數(shù)據(jù),不同級別數(shù)據(jù)獲取互不影響,并且擴(kuò)展起來很方便。
為了更好地驗證JSON的數(shù)據(jù)傳輸效率,本文對服務(wù)器接口響應(yīng)時間進(jìn)行測試。接口測試采用聯(lián)通版iPhone5在3G環(huán)境下進(jìn)行,網(wǎng)絡(luò)狀態(tài)良好,單位是毫秒(ms),測試結(jié)果如表1所示。接口測試從參與網(wǎng)絡(luò)交互的第2級接口開始,其中“—”表示未定義相應(yīng)層級接口,由于網(wǎng)絡(luò)環(huán)境不穩(wěn)定等原因,實驗數(shù)據(jù)會有一些波動,本文對每一級接口測試10次然后取平均值。從表1中可以看出,各模塊綜合響應(yīng)時間均不超過4 s,用戶體驗良好。
圖4 數(shù)據(jù)接口設(shè)計示意圖Fig.4.Diagram of data interface design
表1 服務(wù)器JSON接口測試結(jié)果表Table 1.Test results table of server JSON interface
為研究用戶的使用習(xí)慣,服務(wù)器端對每一次數(shù)據(jù)請求自動記錄,通過分析數(shù)據(jù)日志對軟件的后續(xù)開發(fā)加以調(diào)整。本文選取2014年1月10日(穩(wěn)定版發(fā)布)到2014年4月24日的時間段對訪問日志進(jìn)行分析,結(jié)果如下:
(1)訪問日志總共包含7 313條記錄,其中iOS客戶端訪問3 912次,Android客戶端訪問3 401次,訪問最頻繁的三個模塊分別是“極地影像”、“極地新聞”和“極地氣象”。分析IP歸屬地發(fā)現(xiàn)訪問用戶主要來源于武漢、北京和上海,同時有少量用戶來源于海外,如美國、意大利和挪威??蛻舳嗽L問趨勢如圖5所示。
圖5 客戶端累計訪問量趨勢圖Fig.5.The trend of client access
(2)通過將訪問日期轉(zhuǎn)換為工作日并加以統(tǒng)計,各個工作日訪問量差距不是很明顯,如圖6所示。
圖6 客戶端訪問記錄按工作日統(tǒng)計Fig.6.Client access statistics by weekdays
(3)以小時為單位,統(tǒng)計用戶一天之內(nèi)每個小時的訪問次數(shù),結(jié)果如圖7所示,從圖中可以發(fā)現(xiàn),用戶一般會在上午上班(8:00)和下午下班之后體驗軟件。
圖7 客戶端訪問記錄按小時統(tǒng)計Fig.7.Client access statistics by hour
通過對數(shù)據(jù)日志的統(tǒng)計分析,可以跟蹤發(fā)掘用戶的使用習(xí)慣,進(jìn)而指導(dǎo)軟件的進(jìn)一步研發(fā)和擴(kuò)展,使得軟件升級完善并且更加面向用戶需求,穩(wěn)步提升用戶體驗。
服務(wù)器的主要功能是提供數(shù)據(jù)交互,因此首先要保證數(shù)據(jù)的完整性和安全性。數(shù)據(jù)獲取方面,在雪龍船和考察站點(diǎn)現(xiàn)場采集的數(shù)據(jù)通過海事衛(wèi)星通訊網(wǎng)絡(luò)回傳到國內(nèi)服務(wù)器上,考慮到海事衛(wèi)星通訊可能存在的不穩(wěn)定性以及費(fèi)用限制,采集的數(shù)據(jù)會先在遠(yuǎn)端數(shù)據(jù)中心保存起來,以確保數(shù)據(jù)完整,然后由后臺服務(wù)程序?qū)?shù)據(jù)進(jìn)行抽樣并選取半小時1次的數(shù)據(jù)記錄回傳到國內(nèi)服務(wù)器上[6]。服務(wù)器進(jìn)行數(shù)據(jù)交換之前首先對數(shù)據(jù)來源進(jìn)行篩選確認(rèn),防止數(shù)據(jù)被惡意攔截篡改;接收的數(shù)據(jù)在入庫之前也會進(jìn)行數(shù)據(jù)檢驗,充分保證了采集數(shù)據(jù)的可靠性和安全性。
移動終端用戶通常采用移動網(wǎng)絡(luò)訪問服務(wù)器,此種方式經(jīng)常受到帶寬以及網(wǎng)絡(luò)流量的限制,因此選擇一種安全高效的數(shù)據(jù)通信方法尤為重要。JSON能從眾多的遠(yuǎn)程數(shù)據(jù)庫通信方法中脫穎而出,主要在于其通過HTTP協(xié)議訪問應(yīng)用服務(wù)器,安全、快速、通用、數(shù)據(jù)通信量小,同時對后臺數(shù)據(jù)庫沒有特殊要求。JSON通信方式在保證系統(tǒng)高效及安全的情況下,降低了對移動終端的要求。
本文基于已有的數(shù)據(jù)基礎(chǔ)和極地科考需求,設(shè)計實現(xiàn)了中國南北極考察數(shù)據(jù)瀏覽與互動的移動信息平臺—“掌上兩極”,該系統(tǒng)囊括了Android和iOS兩大智能手機(jī)平臺。系統(tǒng)在設(shè)計階段考慮到后期功能擴(kuò)展的需要,對框架的設(shè)計保持靈活性,同時系統(tǒng)開發(fā)兼顧了移動平臺的特點(diǎn),注重用戶體驗,盡量減少不必要的網(wǎng)絡(luò)交互,提升客戶端響應(yīng)速度?!罢粕蟽蓸O”的數(shù)據(jù)來源于中國極地科學(xué)考察管理信息系統(tǒng),具有權(quán)威性,方便極地管理部門、社會公眾和科研人員獲取最新的南北極相關(guān)信息。該系統(tǒng)已于2014年1月經(jīng)過專家鑒定,評價其實現(xiàn)了極地管理與社會服務(wù)功能的有機(jī)結(jié)合,填補(bǔ)了中國極地信息移動終端服務(wù)軟件的空白。當(dāng)然,系統(tǒng)也存在一些不足,比如“隊員報名”、“考察申報”等模塊直接轉(zhuǎn)到了相關(guān)網(wǎng)站,后期需要針對移動客戶端進(jìn)行網(wǎng)頁的優(yōu)化和功能擴(kuò)展。截止目前,“掌上兩極”主要解決了移動環(huán)境下的數(shù)據(jù)快速獲取問題,下一步研究計劃主要包括以下三個方面:(1)深入探討極地考察業(yè)務(wù)需求,增加針對管理部門的應(yīng)急決策支持功能;(2)增加基于LBS的移動數(shù)據(jù)采集模塊;(3)根據(jù)訪問統(tǒng)計的分析結(jié)果及用戶反饋意見加強(qiáng)對系統(tǒng)的測試及擴(kuò)展,進(jìn)一步提升用戶體驗。
1 2013Q2中國智能手機(jī)市場季度監(jiān)測報告.http://www.iimedia.cn/36890.html.
2 荊明.基于Android校園地理信息搜索系統(tǒng)的研究.大連:大連理工大學(xué),2013.
3 高天.關(guān)于塞班系統(tǒng)的思考.數(shù)字技術(shù)與應(yīng)用,2013,(4):236—236.
4 Android,the world'smost popularmobile platform.http://developer.android.com/about/index.html.
5 iOS是什么.http://www.apple.com/cn/ios/what-is/.
6 艾松濤,鄂棟臣,朱建鋼,等.雪龍在線網(wǎng)絡(luò)信息平臺的研發(fā)與展望.極地研究,2011,23(1):56—61.
7 李升貴.構(gòu)建極地“三大平臺”推動“數(shù)字極地”建設(shè)——908專項“數(shù)字海洋”極地研究中心節(jié)點(diǎn)成果與應(yīng)用.海洋開發(fā)與管理,2010,27(6):49—57.
8 程文芳,張潔,夏明一,等.極地標(biāo)本資源共享平臺系統(tǒng)設(shè)計與實現(xiàn).極地研究,2013,25(2):185—196.
9 吳林,熊滔,蔡永香.基于Android手機(jī)的地圖應(yīng)用設(shè)計與開發(fā).城市勘測,2011,(2):16—19.
10 張博.基于iOS的MSN Messenger V7.0手機(jī)客戶端的設(shè)計與實現(xiàn).北京:北京交通大學(xué),2012.
11 李潔,王恂.用JSON改進(jìn)AJAX數(shù)據(jù)傳輸.中國高新技術(shù)企業(yè),2008,16(1):123.