王建虎 吳昊
摘 ?要:該文基于國土違法用地巡查執(zhí)法和農(nóng)村土地確權(quán)登記等需求,采用面向服務(wù)思想設(shè)計并實(shí)現(xiàn)了一種基于“云+端”模式的移動GIS快速開發(fā)平臺,提出一種分層開發(fā)模型OS-GAL-IAL,研制出跨平臺、高性能、全自主的GIS內(nèi)核,實(shí)現(xiàn)了一套精細(xì)化、流程化、可視化、易擴(kuò)展的快速開發(fā)框架,能幫助開發(fā)者快速構(gòu)建業(yè)務(wù)敏捷的移動GIS應(yīng)用系統(tǒng)。
關(guān)鍵詞:移動GIS ?WebGIS ?SOA ?敏捷開發(fā)
中圖分類號:P208;TP311 ? 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2019)12(b)-0031-02
移動GIS作為移動空間信息服務(wù)的基礎(chǔ)設(shè)施,其應(yīng)用領(lǐng)域非常廣泛。然而,當(dāng)前移動GIS還面臨一些技術(shù)難題,包括空間數(shù)據(jù)量大、計算能力不足、網(wǎng)絡(luò)帶寬窄、可靠性差、軟硬件兼容性差等,導(dǎo)致移動GIS項目實(shí)施面臨技術(shù)門檻高、開發(fā)周期長、實(shí)施成本高、項目風(fēng)險大等問題。該文以移動GIS項目共性需求為導(dǎo)向,采用面向服務(wù)思想設(shè)計并實(shí)現(xiàn)了基于“云+端”模式的移動GIS快速開發(fā)平臺。平臺具有跨平臺、高性能、可配置、易擴(kuò)展、支持多語言二次開發(fā)等特點(diǎn),能幫助開發(fā)者快速構(gòu)建業(yè)務(wù)敏捷的移動GIS應(yīng)用系統(tǒng),具有重要的現(xiàn)實(shí)意義。
1 ?平臺總體架構(gòu)
經(jīng)過多年發(fā)展,GIS己從單機(jī)工具型軟件系統(tǒng)逐步走向分布式、網(wǎng)絡(luò)化的應(yīng)用軟件平臺,從獨(dú)立GIS系統(tǒng)逐步過渡到具有高度資源整合能力和對外服務(wù)能力的服務(wù)式GIS。服務(wù)式GIS是一種面向服務(wù)軟件工程方法的GIS技術(shù)體系,它支持按照一定規(guī)范把GIS的全部功能以服務(wù)的方式發(fā)布出來,可以跨平臺、跨網(wǎng)絡(luò)、跨語言地被多種客戶端調(diào)用,同時能聚合來自其他服務(wù)器發(fā)布的GIS服務(wù)。該文以面向服務(wù)的思想,分析設(shè)計了基于SOA架構(gòu)的移動GIS開發(fā)平臺,提出“云+端”的移動GIS開發(fā)模式,由應(yīng)用層、服務(wù)層、支撐層、核心層組成,其總體架構(gòu)如圖1所示。
其中,應(yīng)用層是以移動GIS為工具的數(shù)據(jù)采集、設(shè)備巡檢、移動執(zhí)法等各類應(yīng)用系統(tǒng),包括移動作業(yè)系統(tǒng)、在線監(jiān)控、基于WebGIS的業(yè)務(wù)應(yīng)用系統(tǒng)、指揮決策系統(tǒng)等,這些運(yùn)行環(huán)境不同、架構(gòu)各異的應(yīng)用系統(tǒng),通過調(diào)用、聚合平臺發(fā)布的服務(wù),實(shí)現(xiàn)數(shù)據(jù)共享和互操作;服務(wù)層由一系列遵循一定規(guī)范的應(yīng)用接口組成,是平臺暴露給應(yīng)用層進(jìn)行集成、擴(kuò)展的應(yīng)用程序接口;支撐層是平臺的核心,采用B/S和C/S相結(jié)合的混合架構(gòu),對應(yīng)用層各類系統(tǒng)起著數(shù)據(jù)管理、配置等支撐作用。
2 ?平臺主要功能模塊
2.1 GIS核心庫
核心層由HiMap SDK和HiWebGIS引擎組成,前者主要面向桌面端、服務(wù)器端和嵌入式設(shè)備的輕量級GIS應(yīng)用程序的開發(fā)與部署,而后者是面向WebGIS應(yīng)用系統(tǒng)的二次開發(fā)組件。HiMap SDK采用標(biāo)準(zhǔn)C++開發(fā)從底層構(gòu)建實(shí)現(xiàn),支持跨平臺(Windows Mobile、Android、iOS、Win32等)、多語言(C#、JAVA、Object C)、多并發(fā)、高性能的GIS應(yīng)用程序二次開發(fā)。HiMap SDK引入了硬件抽象層的概念,提出分層開發(fā)模型OS-GAL-IAL(見圖2)。
2.2 數(shù)據(jù)管理系統(tǒng)
基礎(chǔ)地圖數(shù)據(jù)、業(yè)務(wù)對象數(shù)據(jù)的預(yù)處理是移動GIS應(yīng)用項目中至關(guān)重要的一環(huán),由于這些數(shù)據(jù)通常是多源異構(gòu)的,在存儲方式、數(shù)據(jù)格式、空間參考等方面存在差異,需要對這些數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換、坐標(biāo)變換、拓?fù)錂z查、符號設(shè)置、緩存制作、壓縮轉(zhuǎn)存等數(shù)據(jù)預(yù)處理工作。數(shù)據(jù)管理系統(tǒng)綜合考慮桌面系統(tǒng)和嵌入式應(yīng)用系統(tǒng)在數(shù)據(jù)精度、顯示分辨率、尋址計算等方面的差異,進(jìn)行全局的優(yōu)化設(shè)計,提供了豐富實(shí)用的功能插件。比如:地圖緩存制作插件可同時制作多種分辨率的地圖瓦片,并提供松散、緊湊這2種存儲格式,確保數(shù)據(jù)能在桌面端、Web端和移動端均能逼真、流暢地展示。
2.3 通信傳輸系統(tǒng)
通信傳輸系統(tǒng)是承接移動GIS和服務(wù)器的關(guān)鍵部分,其傳輸效率和系統(tǒng)的安全性、健壯性通常決定著一個移動GIS項目能否成功實(shí)施。用戶在戶外開始作業(yè)前,移動GIS通過套接字(Socket)連接到通信服務(wù)系統(tǒng)進(jìn)行合法性驗(yàn)證,作業(yè)完成后,現(xiàn)場采集的數(shù)據(jù)和軌跡數(shù)據(jù)通過通信服務(wù)系統(tǒng)實(shí)時地保存到服務(wù)器。當(dāng)監(jiān)控中心需要對戶外用戶進(jìn)行指揮調(diào)度、多方協(xié)助時,可通過通信服務(wù)系統(tǒng)將指令推送給現(xiàn)場終端用戶。為了達(dá)到最佳系統(tǒng)性能,該文采用完成端口(I/O Completion Ports,IOCP)管理套接字,IOCP充分利用內(nèi)核對象的調(diào)度,只使用少量的幾個線程來處理和客戶端的所有通信,消除了無謂的線程上下文切換,從而最大限度地提高了網(wǎng)絡(luò)通信的性能。
2.4 服務(wù)管理系統(tǒng)
服務(wù)管理系統(tǒng)是平臺各種服務(wù)運(yùn)行的宿主環(huán)境,與IIS托管、Windows Services宿主不同,自托管宿主具有便于管控等優(yōu)勢,能方便地啟動、停止、重啟服務(wù),可有效地對服務(wù)消費(fèi)者進(jìn)行過濾、監(jiān)控、報警等,同時能有效聚合外部服務(wù),更適合于平臺級的應(yīng)用項目。
2.5 WebGIS展示組件
WebGIS是各類業(yè)務(wù)對象時空信息的綜合展示窗口,是Web端業(yè)務(wù)應(yīng)用系統(tǒng)的重要組件,是核心層HiWebGIS引擎二次開發(fā)的綜合示例。WebGIS組件中的所有展示方式、事件和行為(如圖層組織、符號樣式、查詢范圍、空間分析、搜索結(jié)果、消息處理、事件響應(yīng)等),均源自運(yùn)行維護(hù)系統(tǒng)對WebGIS的配置結(jié)果,它們之間通過GIS服務(wù)契約和前端框架引擎實(shí)現(xiàn)“所配即所得”的快速定制效果。WebGIS展示組件內(nèi)置了豐富的功能模塊,包括圖層控制、鷹眼、圖文互查、空間查詢、圖形編輯、專題地圖、GPS軌跡、地圖打印等模塊,程序員只須在頁面中通過為地圖對象添加工具組件的方式完成這些配置。
2.6 代碼生成工具
為進(jìn)一步提升移動GIS項目的開發(fā)效率,降低該平臺框架使用的復(fù)雜度,該文設(shè)計并實(shí)現(xiàn)了基于微軟T4模版引擎的代碼自動生成工具。程序員通過簡單向?qū)В隳茏詣由蓪毂頂?shù)據(jù)增、刪、改、查等功能多層結(jié)構(gòu)(UI、BLL、DAO、SqlMap)、標(biāo)準(zhǔn)化、高質(zhì)量的源代碼,并有效地解決了多表關(guān)聯(lián)等難題。
3 ?結(jié)語
該文以解決移動GIS項目實(shí)施中所面臨問題為出發(fā)點(diǎn),根據(jù)移動GIS類型項目的共性需求,設(shè)計并實(shí)現(xiàn)了基于“云+端”模式的敏捷開發(fā)平臺。目前已成功應(yīng)用到國土違法用地巡查執(zhí)法、安監(jiān)執(zhí)法、道路養(yǎng)護(hù)與路政稽查、輸配電設(shè)備巡檢、市政管網(wǎng)巡查、土壤重金屬污染防治普查和農(nóng)村土地確權(quán)登記等領(lǐng)域的多個項目中。實(shí)踐證明,該平臺具有多語言、跨平臺、可配置、易擴(kuò)展等特點(diǎn),能有效提高開發(fā)效率,縮減軟件開發(fā)周期,降低項目實(shí)施風(fēng)險,受到開發(fā)商和最終用戶的一致好評。
參考文獻(xiàn)
[1] 王志敏.基于GIS云服務(wù)的云南省國土空間大數(shù)據(jù)可視化系統(tǒng)建設(shè)研究[J].地礦測繪,2018(9):127-131.
[2] 童麗閨.基于云GIS與大數(shù)據(jù)的區(qū)劃地名云服務(wù)平臺設(shè)計[J].測繪與空間地理信息,2014(7):1-8.
[3] 王興玲.基于.NET平臺的地理信息Web服務(wù)研究與應(yīng)用[J].計算機(jī)工程與應(yīng)用,2002,38(22):6-8.