黃 挺 劉 剛 張志庭 何珍文
(中國地質(zhì)大學(xué)(武漢)計算機(jī)學(xué)院 湖北 武漢 430074)(中國地質(zhì)大學(xué)(武漢)智能地學(xué)信息處理湖北省重點實驗室 湖北 武漢 430074)
信息產(chǎn)品是現(xiàn)代地質(zhì)與地礦調(diào)查工作的主要成果,關(guān)系到國家的經(jīng)濟(jì)發(fā)展,不單單是國家經(jīng)濟(jì)建設(shè)的重要基礎(chǔ),而且還是經(jīng)濟(jì)發(fā)展的先行者,在國家與社會的發(fā)展中有著難以取代的戰(zhàn)略地位和作用。地質(zhì)與地礦調(diào)查工作在近幾十年來的深入挖掘與探究,已經(jīng)有了一定的成果,但是隨著科技的發(fā)展,傳統(tǒng)地質(zhì)工作急需新的技術(shù)尤其是信息技術(shù)的輔助與支撐。
野外地質(zhì)數(shù)據(jù)采集系統(tǒng)作為地質(zhì)信息系統(tǒng)中重要的部分,是開展地質(zhì)研究的基礎(chǔ),其質(zhì)量直接影響解釋結(jié)果與客觀實際的接近程度[1-7]。野簿記錄是過去地礦工作所采用的主要形式。地礦人員將采集到紙質(zhì)數(shù)據(jù)帶回去并對其進(jìn)行數(shù)字化成為電子文件或?qū)⑵浯嫒霐?shù)據(jù)庫中。通過紙質(zhì)數(shù)據(jù)與原圖進(jìn)行比較檢查,具有記錄內(nèi)容隨意、格式不規(guī)范以及使用不方便等缺點。數(shù)字化過程繁瑣也會降低數(shù)據(jù)采集的質(zhì)量和準(zhǔn)確性,容易存在數(shù)據(jù)質(zhì)量問題,難以滿足地學(xué)定量化和地礦信息化的要求[7-10]。
人們針對這些問題,提出了利用電子儀器來進(jìn)行數(shù)據(jù)采集,但是初期這些設(shè)備笨重難用。后又使用PDA掌上電腦,但也存在系統(tǒng)本身易用度不足、擴(kuò)展性弱、開發(fā)困難等問題。隨著移動技術(shù)的發(fā)展以及智能手機(jī)的普及,有一些基于Android的數(shù)據(jù)采集系統(tǒng)已經(jīng)有所應(yīng)用,但是在地礦領(lǐng)域的相關(guān)應(yīng)用較少。目前少有的幾種地礦數(shù)據(jù)采集系統(tǒng)在野外離線模式下要進(jìn)行數(shù)據(jù)的傳輸共享依舊是困難重重,并且地礦數(shù)據(jù)采集人員將數(shù)據(jù)傳輸?shù)椒?wù)器,當(dāng)數(shù)據(jù)重合時往往采用覆蓋這種不合理的方式,缺乏一種有效合理的同步機(jī)制來實現(xiàn)數(shù)據(jù)的匯總。
針對地礦數(shù)據(jù)采集工作繁瑣、效率低、野外數(shù)據(jù)傳輸共享不方便、數(shù)據(jù)匯總不合理等問題,本文研究開發(fā)了一個能夠適應(yīng)地礦采集工作、功能完善、延展性強、適應(yīng)性強、簡單易用、處理過程有效合理的地礦數(shù)據(jù)采集系統(tǒng)。本系統(tǒng)在Android平臺上,實現(xiàn)了基于NFC與GeoML的地質(zhì)工作數(shù)據(jù)采集、瀏覽、傳輸以及管理。結(jié)合北斗定位系統(tǒng),提高地質(zhì)數(shù)據(jù)的位置精確性和安全性,采用移動端進(jìn)行數(shù)據(jù)的采集、瀏覽和展示保證了地礦數(shù)據(jù)采集的高效性,利用NFC與GeoML實現(xiàn)數(shù)據(jù)的傳輸共享與處理,縮短了數(shù)據(jù)更新周期,保證了數(shù)據(jù)傳輸?shù)陌踩?、高效性以及合理性?/p>
NFC傳輸是一種近距離無線通信,也稱為近場通信,由非接觸式射頻識別(RFID)演變而來,其基礎(chǔ)是RFID及互連技術(shù)[11-14]。NFC是一種短距高頻的無線電技術(shù),在13.56 MHz頻率運行于20厘米距離內(nèi)[11-12,14]。其原理非常簡單,根據(jù)主被動關(guān)系可以劃分為主動與被動兩種交換數(shù)據(jù)的模式。被動模式下進(jìn)行數(shù)據(jù)傳輸目標(biāo)設(shè)備不必產(chǎn)生射頻場,主動模式下兩者都要產(chǎn)生射頻場來進(jìn)行數(shù)據(jù)的交換。
NFC通常采用集成芯片的方式將其整合到設(shè)備中,設(shè)備之間只要相互接觸便能夠建立連接,現(xiàn)主要應(yīng)用于移動支付、電子公交、門禁以及某些特定領(lǐng)域的文件、圖像、視頻、同步處理等。
利用NFC技術(shù)來實現(xiàn)離線數(shù)據(jù)傳輸?shù)膬?yōu)勢在于:
(1) 近距離無線通信。傳輸距離在0.2 m范圍以內(nèi),一次只允許兩臺設(shè)備進(jìn)行連接傳輸,采用硬件安全模塊加密,有效保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
(2) 產(chǎn)品滲透性高。隨著基于NFC的移動支付、電子門禁等應(yīng)用的普及,目前主流智能手機(jī)以及大量的可穿戴設(shè)備都支持了NFC功能。
(3) 傳輸建立時間快。建立連接的時間不超過0.1 s,而藍(lán)牙建立連接需要5 s左右,這也是為什么NFC能在移動支付、電子公交等領(lǐng)域進(jìn)行應(yīng)用,藍(lán)牙卻無法適用的重要原因。
GeoML同步協(xié)議采用XML的標(biāo)準(zhǔn)規(guī)范設(shè)計,并借鑒SyncML協(xié)議所采用的標(biāo)簽定義規(guī)范以及設(shè)計思路,通過GeoML消息來處理客戶端和服務(wù)器端之間的消息交換,其本質(zhì)上是SyncML協(xié)議的一種改進(jìn)。
SyncML(Synchronization Markup Language)作為一種信息同步標(biāo)準(zhǔn)協(xié)議,與所處的平臺沒有關(guān)系。簡而言之,就是采用SyncML能夠在任何的程序或者設(shè)備上獲取到一致的數(shù)據(jù),其本身是一種開放的標(biāo)準(zhǔn),能夠在兼容的設(shè)備、網(wǎng)絡(luò)和程序中進(jìn)行數(shù)據(jù)的同步處理操作。SyncML的根本目的就是通過這種開放標(biāo)準(zhǔn)實現(xiàn)與發(fā)展出一個能夠廣泛在相互兼容的設(shè)備、網(wǎng)絡(luò)、程序之間進(jìn)行普通的、單一的數(shù)據(jù)同步協(xié)議。
SyncML同步協(xié)議最主要的組成部分如下:
(1) change log:SyncML采用的一種消息跟蹤機(jī)制,通過這種機(jī)制來處理服務(wù)器端與客戶端的數(shù)據(jù)修改與信息交換問題。
(2) Map operation(操作的映射):同步操作在服務(wù)器端與客戶端的對應(yīng)的數(shù)據(jù)庫中每一條數(shù)據(jù)元素都定義一個唯一的一個標(biāo)識碼(IDS),當(dāng)進(jìn)行數(shù)據(jù)操作時,如果IDS是不一樣的,就需要在服務(wù)器端留存一個ID對應(yīng)的映射,以確保客戶端與服務(wù)器端之間的數(shù)據(jù)交換一致性。
(3) Sync anchors(同步錨):同步初始化時會發(fā)送最后一次和下一次同步的錨,通過這種方式,在服務(wù)端和客戶端交換各自的同步錨,接受設(shè)備必須保存同步錨直到下次同步。
(4) Confict resolution(沖突解決方式):沖突解決策略是SyncML同步機(jī)制的最基本的功能,也是同步機(jī)制的根本。在確認(rèn)客戶端與服務(wù)器端之間的數(shù)據(jù)產(chǎn)生沖突后,服務(wù)器端將通過狀態(tài)消息碼以及通知功能來告知進(jìn)行數(shù)據(jù)同步的客戶端,令其定義沖突解決方案。
(5) Security(安全性):SyncML定義了服務(wù)器層、數(shù)據(jù)庫層和對象層三種層次來進(jìn)行用戶驗證機(jī)制,使用SyncML協(xié)議必須支持MD5驗證。
(6) Device capabilities(設(shè)備性能):同步的客戶端須得在第一次進(jìn)行數(shù)據(jù)同步或在設(shè)備的靜態(tài)信息產(chǎn)生更新之后將設(shè)備得相關(guān)信息傳遞到服務(wù)器端。此后的每次數(shù)據(jù)同步請求服務(wù)器端都要接受和處理設(shè)備信息。
本系統(tǒng)的架構(gòu)為層次化的架構(gòu)設(shè)計,系統(tǒng)架構(gòu)圖如圖1所示,可以將其分為4個層次,即接口層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)庫層。
接口層主要負(fù)責(zé)提供數(shù)據(jù)傳輸?shù)慕涌?,它將利用業(yè)務(wù)邏輯層的功能來選取需要的數(shù)據(jù)或者要保存的數(shù)據(jù),然后通過數(shù)據(jù)訪問層獲取數(shù)據(jù)或者插入數(shù)據(jù)。本系統(tǒng)的兩個重要的接口分別是NFC離線數(shù)據(jù)傳輸分享接口和地質(zhì)云的GeoML同步協(xié)議傳輸。
業(yè)務(wù)邏輯層是整個系統(tǒng)的核心,主要用于實現(xiàn)系統(tǒng)業(yè)務(wù)的各個流程,統(tǒng)籌各個功能模塊并實現(xiàn)相應(yīng)的業(yè)務(wù)邏輯[15-17]。業(yè)務(wù)邏輯層包括數(shù)據(jù)錄入、GIS地圖的顯示與操作、地質(zhì)實體投影、北斗定位等。
數(shù)據(jù)訪問層負(fù)責(zé)數(shù)據(jù)的存儲與管理,也可以稱為Dao(Data Acess Object)層。業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層來進(jìn)行數(shù)據(jù)操作。本系統(tǒng)基于ORM框架來實現(xiàn)數(shù)據(jù)的訪問,統(tǒng)一將關(guān)系數(shù)據(jù)庫中的表視作對象,把數(shù)據(jù)存取操作集中到Dao層,能夠更清晰合理地管理軟件開發(fā)過程的代碼和邏輯。
數(shù)據(jù)庫層包含SQLite數(shù)據(jù)庫以及文件系統(tǒng),SQLite數(shù)據(jù)庫負(fù)責(zé)管理用戶數(shù)據(jù)、采集人員錄入和從其他設(shè)備傳輸過來的結(jié)構(gòu)化數(shù)據(jù),文件系統(tǒng)負(fù)責(zé)管理視頻、錄音、圖片等非結(jié)構(gòu)化數(shù)據(jù)。
圖1 采集系統(tǒng)系統(tǒng)架構(gòu)圖
該系統(tǒng)采用了模塊化設(shè)計,主要包含用戶管理模塊、北斗GIS地圖模塊、數(shù)據(jù)錄入模塊、數(shù)據(jù)傳輸模塊、地質(zhì)云管理模塊。北斗GIS地圖模塊負(fù)責(zé)客戶端的定位、GIS地圖、實體投影等;數(shù)據(jù)錄入模塊包括數(shù)據(jù)的錄入、查看、修改;數(shù)據(jù)傳輸模塊包含移動端之間的NFC離線數(shù)據(jù)傳輸共享以及移動端與地質(zhì)云的GeoML同步協(xié)議傳輸;地質(zhì)云管理模塊即服務(wù)器端,負(fù)責(zé)數(shù)據(jù)匯聚和管理。如圖2所示。
圖2 系統(tǒng)功能模塊圖
在地礦數(shù)據(jù)采集工作中,保證數(shù)據(jù)的安全至關(guān)重要,防止非法用戶查看、修改數(shù)據(jù)就成為了系統(tǒng)所需要提供的基本安全性保證[15]。用戶管理模塊的主要作用是確保用戶的合法性,用戶在進(jìn)入地礦數(shù)據(jù)采集系統(tǒng)之前必須進(jìn)行身份驗證。
用戶管理模塊中,可以劃分為兩個子模塊,即用戶注冊模塊和登錄模塊,對應(yīng)了兩個界面,即用戶注冊界面以及登錄界面。用戶注冊需要驗證相關(guān)的個人信息以及單位信息,登錄系統(tǒng)需要驗證密碼以及用戶部分信息。
北斗GIS地圖模塊利用北斗衛(wèi)星導(dǎo)航系統(tǒng)進(jìn)行目標(biāo)地的定位與位置信息獲取。北斗衛(wèi)星導(dǎo)航系統(tǒng)是由空間段、地面段和用戶段三部分組成。其可在全球范圍內(nèi)全天候、全天時為各類用戶提供高精度、高可靠定位、導(dǎo)航、授時服務(wù),并具短報文通信能力,已經(jīng)具備區(qū)域?qū)Ш?、定位和授時能力,定位精度10米,測速精度0.2米/秒,授時精度10納秒[18-22]。
北斗的定位原理:首先,移動設(shè)備發(fā)送信號到衛(wèi)星;然后,衛(wèi)星轉(zhuǎn)發(fā)到總控站進(jìn)行解算,總控站把結(jié)果轉(zhuǎn)發(fā)衛(wèi)星;最后再回傳客戶端。操作延遲相對高,但是定位精度稍微高一些。在得到了定位信息之后,系統(tǒng)利用GIS地圖對所在位置進(jìn)行實時顯示。
GIS地圖基于百度地圖開發(fā)。百度地圖具有功能全面、服務(wù)穩(wěn)定、性能優(yōu)異的特點[23],調(diào)用百度地圖服務(wù)必須先獲取其Map API Key。本系統(tǒng)采用的百度地圖包含普通模式、跟隨模式、羅盤模式,用戶可以根據(jù)需要選擇合適的模式。
對地礦數(shù)據(jù)信息進(jìn)行編入和保存,包含多張與地礦信息相關(guān)的數(shù)據(jù)表。與北斗模塊配合,能實時可視化地進(jìn)行數(shù)據(jù)錄入。系統(tǒng)基于Android操作系統(tǒng)自帶的SQLite數(shù)據(jù)庫,采用對象關(guān)系映射(ORM)的模式,利用開源Android數(shù)據(jù)庫LitePal框架實現(xiàn)數(shù)據(jù)的持久化存儲。本選題數(shù)據(jù)錄入主要包含井信息表、井斜軌跡數(shù)據(jù)表、地層分層表、礦區(qū)信息表、礦區(qū)范圍表、鉆孔信息表。地礦數(shù)據(jù)庫表清單如表1所示,以井信息表為例的錄入數(shù)據(jù)項如表2所示。
表1 地礦數(shù)據(jù)庫表清單
表2 井信息表結(jié)構(gòu)
該系統(tǒng)的數(shù)據(jù)傳輸模塊包含兩個部分,分別是移動端之間的NFC離線數(shù)據(jù)傳輸共享以及移動端與地質(zhì)云的GeoML同步協(xié)議傳輸。
NFC近場傳輸能夠近乎完美地契合地礦信息管理系統(tǒng)離線傳輸方式的需求。當(dāng)Android系統(tǒng)檢測到NFC tag時,它會利用Tag Dispatch機(jī)制進(jìn)行處理。Android接受到NFC tag中所傳來的地礦數(shù)據(jù)信息Message后,會解讀message中的信息,并且建立不同類型的Intent對象,然后搜索該Intent對應(yīng)的程序,即本文客戶端的地礦數(shù)據(jù)采集程序。接下來該程序?qū)@取數(shù)據(jù)并將數(shù)據(jù)存入數(shù)據(jù)庫中并更新。
移動端與地質(zhì)云的在線傳輸主要是將非敏感海量分散的地質(zhì)數(shù)據(jù),通過Internet傳輸給地質(zhì)數(shù)據(jù)服務(wù)云。基礎(chǔ)協(xié)議采用HTTP協(xié)議,服務(wù)形式為REST(Representational State Transfer),同步協(xié)議采用GeoML協(xié)議。具體客戶端將要同步到云端的數(shù)據(jù)從數(shù)據(jù)庫中提取出來并將其存放到XML文件上,使用HTTP協(xié)議通過Internet將XML傳輸?shù)皆贫撕?,服?wù)器將會解析XML中的數(shù)據(jù),并利用GeoML同步協(xié)議將其依次存放到服務(wù)器所對應(yīng)的數(shù)據(jù)庫中。
為了提升用戶體驗感,本系統(tǒng)采用了多線程技術(shù)來解決主線程與工作線程之間的通信問題。Android多線程包含Handle機(jī)制和AsyncTask機(jī)制。Handle機(jī)制一般用于實現(xiàn)某一個定時任務(wù)或者用于線程之間的數(shù)據(jù)傳輸;AsyncTask機(jī)制使用線程池,能夠避免不必要的線程創(chuàng)建和銷毀。本系統(tǒng)通過使用多線程技術(shù)能夠在用戶進(jìn)行數(shù)據(jù)傳輸時進(jìn)行實時的反饋,并更新UI。例如可以讓用戶清楚是否連接成功、數(shù)據(jù)傳輸?shù)陌俜直?、?shù)據(jù)傳輸是否成功等。
在服務(wù)器架構(gòu)體系研發(fā)中,采用REST架構(gòu)體系進(jìn)行設(shè)計。REST即表述性狀態(tài)傳遞,是一種軟件架構(gòu)風(fēng)格。它是一種針對網(wǎng)絡(luò)應(yīng)用的設(shè)計和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。通過url來設(shè)計系統(tǒng)的結(jié)構(gòu)是開發(fā)系統(tǒng)過程中的一種新的思維方式。根據(jù)REST,每個url都代表一個resource,而整個系統(tǒng)就是由這些resource組成的。
基于此架構(gòu)服務(wù)器端能對各移動終端的數(shù)據(jù)進(jìn)行匯聚和管理。所采用的同步協(xié)議即上文所述的GeoML協(xié)議。
本系統(tǒng)基于Android平臺與服務(wù)器端進(jìn)行了相關(guān)的安裝測試。通過大量的測試,該系統(tǒng)界面簡單清晰、操作方便、定位精準(zhǔn)、傳輸快速、性能穩(wěn)定、表現(xiàn)良好,經(jīng)地礦人員試驗后反響較好??蛻舳说闹鹘缑媾c用戶界面如圖3所示,數(shù)據(jù)錄入與修改界面如圖4所示,數(shù)據(jù)的匯總與查看如圖5所示,服務(wù)器端數(shù)據(jù)展示界面如圖6所示。
圖3 主界面與用戶界面
圖4 數(shù)據(jù)錄入與修改界面
圖5 數(shù)據(jù)匯總與查看界面
圖6 服務(wù)器端數(shù)據(jù)展示界面
本系統(tǒng)針對地礦數(shù)據(jù)采集工作繁瑣、效率低、野外數(shù)據(jù)傳輸共享不方便、數(shù)據(jù)匯總不合理等問題,采用當(dāng)前實用性較高的NFC傳輸技術(shù)與GeoML同步協(xié)議設(shè)計并實現(xiàn)了地礦數(shù)據(jù)采集系統(tǒng),包含用戶管理模塊、北斗GIS地圖模塊、數(shù)據(jù)錄入模塊、數(shù)據(jù)傳輸模塊、地質(zhì)云管理模塊?;谝苿踊ヂ?lián)網(wǎng)與NFC技術(shù)實現(xiàn)了地質(zhì)地礦數(shù)據(jù)采集、傳輸、管理;基于北斗系統(tǒng)和GIS地圖實現(xiàn)了友好的交互瀏覽界面;基于GeoML同步協(xié)議實現(xiàn)多端地質(zhì)數(shù)據(jù)的同步共享。該系統(tǒng)能夠更新傳統(tǒng)的野外數(shù)據(jù)采集流程,具有界面清晰、操作簡便、定位精準(zhǔn)、數(shù)據(jù)傳輸共享方便、交互性好等特點。本文的設(shè)計與研發(fā)有效地結(jié)合了移動互聯(lián)網(wǎng)與地礦勘察信息化,方便了地礦數(shù)據(jù)采集的獲取與傳輸共享,有助于推動地礦勘察信息化的發(fā)展。