任雯倩,劉園園
(1.中國地質(zhì)科學(xué)院,北京 100037;2.中國地質(zhì)調(diào)查局發(fā)展研究中心,北京 100037;3.中國地質(zhì)調(diào)查局自然資源綜合調(diào)查指揮中心,北京 100055)
地質(zhì)調(diào)查工作是支撐社會發(fā)展的重要的先行性、基礎(chǔ)性的工作,是國家重大戰(zhàn)略的堅實支撐[1]。隨著全社會轉(zhuǎn)向數(shù)字化、信息化、智能化建設(shè),地質(zhì)調(diào)查工作也從傳統(tǒng)的工作方式逐步向信息化、智能化靠攏,新一代信息技術(shù)正在全面重塑地質(zhì)調(diào)查工作[2]。因此,地質(zhì)調(diào)查信息化建設(shè)一直以來備受重視,眾多專家學(xué)者都在地質(zhì)調(diào)查信息化應(yīng)用方面進(jìn)行了諸多探索:數(shù)字地質(zhì)調(diào)查[3-7]、地質(zhì)編圖[8,9]和各種地質(zhì)要素預(yù)測[10-12],涉及地質(zhì)調(diào)查全過程的方方面面,地質(zhì)調(diào)查范式已從傳統(tǒng)的經(jīng)驗范式、理論范式轉(zhuǎn)向數(shù)據(jù)密集型范式,以信息技術(shù)為驅(qū)動的“調(diào)查—監(jiān)測—數(shù)據(jù)—預(yù)測—決策”已成為現(xiàn)代地質(zhì)調(diào)查工作的新流程[13]。
近年來,為支撐地質(zhì)調(diào)查事業(yè)轉(zhuǎn)型發(fā)展,地質(zhì)調(diào)查信息化研發(fā)團(tuán)隊不斷推進(jìn)地質(zhì)調(diào)查工作全流程數(shù)字化、網(wǎng)絡(luò)化和智能化[14,15],并基于地質(zhì)云基礎(chǔ)設(shè)施,構(gòu)建了地質(zhì)調(diào)查的“云+端”工作模式,提供了從野外數(shù)據(jù)采集、傳輸、處理到應(yīng)用分析的全過程信息化再造和全方位覆蓋,提高了地質(zhì)調(diào)查項目組成員之間工作效率以及協(xié)同共享能力[16,17]?!岸恕卑ㄗ烂娑撕鸵苿佣说拇罅繎?yīng)用,其中移動端應(yīng)用功能各異,比如數(shù)字填圖、數(shù)字剖面、地災(zāi)調(diào)查、水文調(diào)查等[18]。功能各異的移動端應(yīng)用解決了地質(zhì)調(diào)查數(shù)據(jù)采集的信息化問題,方便了地質(zhì)調(diào)查人員的工作。但是對于一些多專業(yè)綜合地質(zhì)調(diào)查業(yè)務(wù),往往需要安裝多個應(yīng)用以滿足業(yè)務(wù)需求,沒有統(tǒng)一的管理體系。因此,本文以實際任務(wù)需要為出發(fā)點,研究并設(shè)計實現(xiàn)了地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架,開發(fā)了Web端和移動端集成應(yīng)用工具進(jìn)行支撐,實現(xiàn)了對采集類APP的統(tǒng)一管理和控制,野外地質(zhì)調(diào)查人員可以按需自定義定制APP工具集,APP使用和切換更加便捷,APP版本實時在線更新,為野外地質(zhì)調(diào)查人員開展業(yè)務(wù)提供了支持,從而提升野外工作效率。
新時期國家重大戰(zhàn)略和生態(tài)文明建設(shè)對地質(zhì)工作提出了新要求,很多地質(zhì)調(diào)查業(yè)務(wù)越來越趨向于綜合性,涉及多專業(yè)、多手段,同一塊研究區(qū)域會涉及到區(qū)域地質(zhì)調(diào)查、礦產(chǎn)地質(zhì)調(diào)查、水文地質(zhì)調(diào)查、環(huán)境地質(zhì)調(diào)查、地質(zhì)災(zāi)害調(diào)查等內(nèi)容,野外地質(zhì)調(diào)查人員往往需要下載安裝各單位研發(fā)的數(shù)字填圖APP、探礦工程編錄APP、水文地質(zhì)與水資源調(diào)查APP等采集類專業(yè)應(yīng)用APP,在實際工作中可能會頻繁切換應(yīng)用,而且這些應(yīng)用界面風(fēng)格不一,影響使用效率;另一方面,由于各單位開發(fā)的采集類專業(yè)APP并未在應(yīng)用商店上架,野外地質(zhì)調(diào)查人員往往不能及時獲取最新版本APP,獲得最新程序包后還需要手動卸載并更新。對地質(zhì)調(diào)查人員而言,這些APP版本管理困難,更新流程繁瑣。因為各采集類APP已經(jīng)相對成熟,為充分利用現(xiàn)有資源,可形成一個集成框架管理所有專業(yè)APP,通過該框架快速調(diào)用各APP功能來滿足地質(zhì)調(diào)查人員的多種專業(yè)調(diào)查任務(wù)需要。
地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架主要業(yè)務(wù)流程(圖1)。Web端后臺管理系統(tǒng)的系統(tǒng)管理員管理用戶,分配權(quán)限;各單位野外數(shù)據(jù)采集移動端APP開發(fā)人員在Web端后臺管理系統(tǒng)上傳采集類APP和進(jìn)行版本更新;野外地質(zhì)調(diào)查人員從移動端瀏覽已經(jīng)上傳的APP,在移動端集成應(yīng)用工具中自定義配置并使用,進(jìn)入各種野外數(shù)據(jù)采集實地工作,并且能夠在APP有新版本時動態(tài)更新APP。系統(tǒng)所有用戶都被納入地質(zhì)云的安全架構(gòu)之下,經(jīng)過地質(zhì)云的登錄驗證。因此,系統(tǒng)建設(shè)主要內(nèi)容包括以下幾個方面:
圖1 業(yè)務(wù)流程圖Fig.1 Business flow chart
(1)系統(tǒng)登錄與登出:后臺管理系統(tǒng)用戶需要通過地質(zhì)云用戶驗證和本系統(tǒng)用戶驗證才能登錄系統(tǒng)進(jìn)行功能操作,移動端用戶則只需要通過地質(zhì)云用戶驗證即可。在登出時統(tǒng)一刪除所有cookie。
(2)APP管理:在后臺管理系統(tǒng)用戶能夠瀏覽已經(jīng)上傳的所有野外數(shù)據(jù)采集類APP的相關(guān)信息、采集類APP下載次數(shù)以及歷史版本等,各單位野外數(shù)據(jù)采集移動端APP開發(fā)人員能夠上傳、更新和刪除自己開發(fā)的野外數(shù)據(jù)采集APP。移動端野外地質(zhì)調(diào)查人員可以瀏覽所有已上傳的野外數(shù)據(jù)采集APP,下載安裝并在移動端內(nèi)部使用以及更新或刪除所需采集類APP。
(3)系統(tǒng)日志管理:后臺管理系統(tǒng)的系統(tǒng)管理員可以搜索查看、刪除所有用戶的一系列行為。
(4)用戶管理:后臺管理系統(tǒng)的系統(tǒng)管理員對用戶進(jìn)行統(tǒng)一管理,包括增加、修改、刪除和查詢用戶信息以及為用戶分配權(quán)限。
地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架系統(tǒng)分為后臺管理系統(tǒng)和移動端集成應(yīng)用工具兩部分。后臺管理系統(tǒng)“地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架后臺管理系統(tǒng)”為采集類APP信息管理系統(tǒng),主要采用B/S(Browser/Server)架構(gòu),基于Spring Boot和Vue框架構(gòu)建了前后端分離的信息系統(tǒng),實現(xiàn)了APP瀏覽、APP管理、用戶管理以及系統(tǒng)日志查看等功能;移動端地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成應(yīng)用(簡稱“地調(diào)外業(yè)通”)則支持操作系統(tǒng)為Android6.0以上的智能手機(jī)或平板設(shè)備,實現(xiàn)了APP查看和使用、APP下載更新或卸載以及用戶信息瀏覽等功能。系統(tǒng)的整體應(yīng)用架構(gòu)見圖2。
圖2 系統(tǒng)總體架構(gòu)圖Fig.2 Overall system architecture diagram
在數(shù)據(jù)層,MySQL數(shù)據(jù)庫存儲各單位野外采集類APP開發(fā)人員用戶信息、上傳的采集類APP各版本信息、系統(tǒng)日志以及各用戶權(quán)限。文件系統(tǒng)存儲已上傳的采集類APP各版本安裝包和圖標(biāo)。MySQL數(shù)據(jù)庫和文件系統(tǒng)共同承載Web端管理系統(tǒng)數(shù)據(jù)。在服務(wù)層,提供數(shù)據(jù)訪問接口,包括采集類APP的相關(guān)信息以及各版本安裝包和圖標(biāo)的下載,系統(tǒng)用戶信息和日志。在應(yīng)用層,用戶通過前端Web系統(tǒng)和Android端應(yīng)用集成工具獲取服務(wù)。應(yīng)用層和服務(wù)層之間通過Tomcat、Http、Axios等進(jìn)行通信。
“地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架后臺管理系統(tǒng)”的前端頁面構(gòu)建采用Vue漸進(jìn)式框架構(gòu)建單頁面應(yīng)用程序[19]。同時,使用與之配套的Vuex存儲組件通用數(shù)據(jù)[20],Vue Router控 制 頁面跳轉(zhuǎn)[21]和Axios與后端通信[22],并通過Nginx服務(wù)器實現(xiàn)反向代理。界面使用基于Vue.js 2.0的桌面端UI框架—Element UI[23]。系統(tǒng)Web端后端基于Java的開源框架Spring Boot[24]和Hibernate的封裝Spring Data JPA[25]進(jìn)行開發(fā)。使用MySQL數(shù)據(jù)庫、文件系統(tǒng)共同承載系統(tǒng)數(shù)據(jù)。系統(tǒng)的主要技術(shù)架構(gòu)見圖3。
圖3 技術(shù)架構(gòu)圖Fig.3 Technical Architecture Chart
基于系統(tǒng)的業(yè)務(wù)需求分析和整體架構(gòu)設(shè)計,按照“低耦合、高內(nèi)聚”原則,為滿足多專業(yè)綜合地質(zhì)調(diào)查業(yè)務(wù)需要,為用戶提供按需定制APP以及版本管理的需要,系統(tǒng)的整體功能結(jié)構(gòu)見圖4。
圖4 系統(tǒng)功能結(jié)構(gòu)圖Fig.4 System function structure diagram
“地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架后臺管理系統(tǒng)”為Web端后臺管理系統(tǒng),面向各單位數(shù)據(jù)采集類APP開發(fā)團(tuán)隊和系統(tǒng)管理員,主要實現(xiàn)采集類APP上傳和更新、版本控制和權(quán)限分配,具體包括以下幾個模塊:
(1)系統(tǒng)登錄與登出:面向系統(tǒng)管理員和采集類APP開發(fā)人員,經(jīng)過地質(zhì)云用戶登錄驗證和本系統(tǒng)數(shù)據(jù)庫的雙重驗證進(jìn)行登錄,系統(tǒng)只展示該用戶所擁有權(quán)限的功能。所有用戶登出時,統(tǒng)一清除所有用戶信息。
(2)模塊瀏覽:所有系統(tǒng)用戶都具有權(quán)限的模塊,用戶可以瀏覽所有用戶上傳到系統(tǒng)里的各個不同的地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP的信息及其歷史版本。對于歷史版本,如果系統(tǒng)不再需要,具有更新權(quán)限的人員可以刪除歷史版本信息。瀏覽形式主要分為兩種:列表形式和網(wǎng)格形式,可以自由進(jìn)行切換。
(3)模塊管理:分為模塊注冊和模塊更新。在模塊注冊用戶可以上傳自己的APP的程序包、icon圖標(biāo)以及相關(guān)的APP信息。注冊完成后,用戶如果想要上傳該APP的新版本,則需要在模塊更新部分選擇自己具有更新權(quán)限的APP的包名進(jìn)行模塊更新。
(4)系統(tǒng)日志:系統(tǒng)日志記錄了系統(tǒng)用戶注冊、更新APP和登錄登出系統(tǒng)等行為,方便系統(tǒng)管理員對用戶的行為進(jìn)行查詢、管理以及修正。
(5)用戶管理:用戶管理包括用戶添加、用戶刪除、用戶更新、用戶查詢和權(quán)限分配五部分功能。在用戶添加部分,系統(tǒng)管理員可以添加用戶信息并分配用戶進(jìn)入系統(tǒng)時可以瀏覽的權(quán)限。權(quán)限分為模塊瀏覽、模塊管理、系統(tǒng)日志和用戶管理四部分。在用戶刪除部分,管理員可以瀏覽、搜索和刪除系統(tǒng)用戶。在用戶更新部分,管理員可以更新用戶信息。用戶查詢部分系統(tǒng)管理員可以通過全部用戶、單條件查詢和多條件查詢?nèi)N方式查詢用戶信息,全部用戶是將全部用戶信息列出,管理員可以看到所有用戶。單條件查詢是選擇一個條件,查詢符合該條件的用戶,多條件則是多個條件聯(lián)合查詢。權(quán)限分配部分管理員則可以為某一個APP分配可以對該APP進(jìn)行更新的賬戶,使得對一個APP,不再是只有上傳該APP的用戶可以更新該應(yīng)用信息,其他人也可以擁有該APP更新的權(quán)限。
“地調(diào)外業(yè)通”為Android端系統(tǒng),面向各多專業(yè)綜合地質(zhì)調(diào)查任務(wù)工作人員,主要實現(xiàn)采集類APP按需下載,自定義配置和使用以及在線更新等功能,同時在各采集類APP之間實現(xiàn)了統(tǒng)一登錄。具體包括以下模塊:
(1)系統(tǒng)登錄:所有用戶經(jīng)過“地調(diào)外業(yè)通”登錄頁面完成地質(zhì)云驗證登錄。由于各采集類APP均需登錄后使用,為避免用戶在使用不同APP時反復(fù)登錄,通過采用ContentProvider方式實現(xiàn)移動端集成應(yīng)用與各采集類App不同應(yīng)用之間的數(shù)據(jù)共享,移動端集成應(yīng)用進(jìn)行用戶名和密碼的驗證,驗證成功后對用戶名和密碼進(jìn)行加密并通過ContentProvider方式共享給各個用戶已安裝的采集類App。各采集類App通過ContentResolver接受共享的加密后的用戶名和密碼并進(jìn)行解密,然后轉(zhuǎn)入各自相應(yīng)的應(yīng)用邏輯。系統(tǒng)內(nèi)部各采集類APP無需再次完成認(rèn)證,只需進(jìn)行業(yè)務(wù)權(quán)限控制。實現(xiàn)流程見圖5。
圖5 統(tǒng)一登陸實現(xiàn)流程Fig.5 Unified login implementation process
(2)模塊中心:用戶可以瀏覽各專業(yè)APP信息并進(jìn)行安裝或更新。
(3)我的應(yīng)用:用戶通過模塊中心自定義配置任務(wù)所需的APP,在我的應(yīng)用中可以查看已經(jīng)安裝的APP并在集成工具內(nèi)部進(jìn)行使用或者卸載。
(4)我的設(shè)置:包括用戶信息、權(quán)限設(shè)置、系統(tǒng)信息和退出系統(tǒng)四部分。用戶信息可以查看登錄用戶的詳細(xì)信息,權(quán)限設(shè)置用來設(shè)置是否允許安裝未知來源應(yīng)用的權(quán)限,系統(tǒng)信息用于查看系統(tǒng)的基本信息,退出系統(tǒng)功能則用于退出應(yīng)用程序。
地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架目前已經(jīng)廣泛應(yīng)用于實際地質(zhì)調(diào)查項目之中,實現(xiàn)了環(huán)境、探礦、水文和地災(zāi)等多專業(yè)APP的集中管理,為野外地質(zhì)調(diào)查人員提供更加便捷的服務(wù),提高了工作效率,整體應(yīng)用流程見圖6。
圖6 地質(zhì)調(diào)查野外數(shù)據(jù)采集類應(yīng)用集成框架應(yīng)用流程Fig.6 Application process of integrated framework for geological survey field data acquisition
各單位開發(fā)人員在Web端上傳采集類APP相關(guān)信息、apk安裝包和圖標(biāo),目前已上傳環(huán)境地質(zhì)調(diào)查、數(shù)字填圖和數(shù)字剖面等八類APP。野外地質(zhì)調(diào)查人員從移動端集成工具可獲取各采集類APP相關(guān)信息,按照調(diào)查任務(wù)要求,自定義下載所需APP并向Web端回傳記錄。下載的APP集成在“我的應(yīng)用”模塊,通過點擊圖標(biāo)進(jìn)入應(yīng)用工作,或者點擊文字說明進(jìn)入詳細(xì)信息查看介紹或卸載應(yīng)用。
本文通過全面分析野外地質(zhì)人員在開展多專業(yè)綜合地質(zhì)調(diào)查任務(wù)時存在的限制以及用戶需求,借鑒了使用Spring Boot和Vue框架開發(fā)前后端分離信息系統(tǒng)的經(jīng)驗,基于云基礎(chǔ)環(huán)境,構(gòu)建了地質(zhì)調(diào)查野外數(shù)據(jù)采集類APP集成框架,并開發(fā)了Web端和移動端集成應(yīng)用工具進(jìn)行支撐,解決了多專業(yè)綜合地質(zhì)調(diào)查業(yè)務(wù)過程中存在的單一應(yīng)用無法滿足業(yè)務(wù)人員需要以及應(yīng)用升級的問題,為類似多專業(yè)綜合地質(zhì)調(diào)查任務(wù)信息系統(tǒng)建設(shè)提供了參考思路。未來,在此基礎(chǔ)上,將進(jìn)一步研究如何提升系統(tǒng)的安全訪問控制能力以及優(yōu)化系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu),從而提高系統(tǒng)的安全性、并發(fā)訪問能力和效率。