郭振宇 廖容升 李正強 陳 輝
(浙江省測繪科學技術研究院, 浙江 杭州 310023)
近年來,我國大規模地開展了多種單向調查工作,例如,全國二次國土調查、森林資源八次普查、水利資源普查以及地理國情普查等[1]。在這些自然資源調查監測過程中,發現存在如下幾點問題,一是各項自然資源調查監測工作來源于不同部門,標準規范不一致,導致同樣一塊土地,結果相互矛盾。例如,原國土資源部門認為是綠地,林業部門卻認為是林地;二是沒有宏觀地對各項自然資源調查監測工作進行頂層設計,各個部門各自為政,導致“信息孤島”[2];三是各自建立自己的調查監測系統,應用無法共享交換。隨著自然資源部門的成立,自然資源調查監測管理工作已成為業務管理的重要工作之一,并趨向科學化、精細化、集中化以及統一化管理,因此,在現有業務系統的基礎上,建立統一的自然資源調查監測系統勢在必行。本文利用地理信息系統(geographic information system,GIS)、云計算、移動互聯等先進技術,結合現流行的微服務技術框架,構建了自然資源調查監測數據庫,搭建了自然資源調查監測系統,實現了自然資源展示、調查、監測和巡查等業務功能以及對外服務接口可兼容性、可擴展性和高并發性,以便更好地為自然資源管理提供服務,有效拓展業務需求[3]。
根據自然資源數據體系分類,整合了多個部門的基礎地理信息、土地、規劃、地質、礦產、森林等數據資源,海量數據可達到千兆兆字節(petabyte,PB級)。這對系統進行數據處理、入庫、展示、查詢和統計等操作提出了更高的要求。
系統服務于自然資源調查監測工作,涉及瀏覽器/服務器模式(browser/server,B/S)端、服務器/客戶機(client-server, C/S)端和移動互聯網端,且需要和原有調查監測系統進行集成,承載海量空間數據的關聯、調度、共享服務以及安全管理。這對系統功能和性能上提出了更高的要求。
系統服務于自然資源內部管理部門和其他政府部門,縱向上為省、市、縣以及村鎮4級自然資源部門提供應用,橫向上為政府其他部門提供自然資源調查監測數據共享和交換。這對系統空間資源共享服務方面提出了更高的要求[4]。
系統基于微服務技術架構,實現從軟硬件資源、數據資源、服務資源到應用層面的一體化設計,包括基礎設施層、數據層、微服務層以及應用層四大核心層,各層按照一定標準規范相結合,從而為自然資源調查監測提供信息化支持[5]。系統框架設計示意圖如圖1所示。

圖1 系統框架設計示意圖注:圖中,B/S為瀏覽器/ 服務器模式( browser/server) 端;C/S為服務器/客戶機( client-server) 端;CPU為中央處理器(central processing unit)。
(1)基礎設施層是利用云計算思想,將服務器、存儲設備以及網絡設備等軟硬件資源,進行虛擬化,用云端管理軟件對計算資源池、存儲資源池以及網絡資源池按需自動分配資源。
(2)數據層是系統應用的數據支撐,通過服務調用、數據采集、處理和入庫,構建了自然資源調查監測數據庫,包括基礎地理數據、自然資源調查、監測和巡查數據以及文檔資料數據等。
(3)微服務層是系統提高運行效率的核心,包括數據倉儲接口、微服務應用、微服務管理和注冊中心以及服務網關等內容。數據倉儲接口一方面與自然資源調查監測數據庫對接,完成數據讀、寫操作;另一方面向微服務應用提供統一的數據操作接口;微服務應用是將自然資源調查監測業務劃分為細粒度的服務,部署在云端服務器中,從而實現服務集群;微服務管理和注冊中心實現對微服務的發布、注冊和管理;服務網關是將微服務應用對外映射,實現服務的負載均衡、訪問控制、服務降級以及前后端路由請求轉發等。
(4)應用層是系統調查監測業務窗口,包括C/S端、B/S端以及移動終端應用,并通過服務接口一方面調用其他業務系統,另一方面為其他系統提供數據來源。
(5)兩側是保障系統運行標準規范體系和安全運維保障體系。
自然資源調查監測數據庫包括基礎地理數據庫、自然資源調查數據庫、自然資源監測數據庫、自然資源巡查數據庫以及文檔資料數據庫等,數據庫建設內容如圖2所示。基礎地理數據庫包括大比例尺地形圖、遙感影像、傾斜模型、地名地址等數據;自然資源調查數據庫包括調查圖斑數據、土地利用現狀調查、土地整治調查、違法建設用地調查、礦產資源調查、地質災害調查、森林資源調查等;自然資源監測數據庫包括監測圖斑數據、土地利用現狀監測、礦區開采邊界監測、耕地保護監測、森林林地破壞監測等;自然資源巡查數據庫包括巡查人員、巡查路徑、巡查任務、歷史軌跡等;文檔資源數據庫包括自然資源調查監測過程中產生的圖片、文本、視頻等資料。

圖2 數據庫建設內容示意圖
系統搭建包括B/S端子系統、C/S端子系統和移動終端子系統3部分。B/S端采用Java開發語言,GIS相關開發采用ArcGIS API for Java Script;C/S端采用.Net平臺結合ArcEngine;移動終端主要基于Android系統進行開發,GIS相關功能采用ArcGIS for Android API[6]。系統功能包括3部分,基于C/S端的數據編輯、數據質檢和數據入庫;基于B/S端的“一張圖”展示、自然資源調查和監測管理、對外服務集成管理以及運維管理;基于移動終端的數據采集、任務管理以及日常巡查等。系統功能結構示意圖如圖3所示。

圖3 功能結構示意圖
微服務技術架構是在面向服務架構(service-oriented architecture,SOA)的基礎上進行升級,可實現系統功能水平、垂直拆分,形成多個微服務集。微服務集能夠獨立部署和運行,通過服務注冊管理中心,實現負載均衡配置和路由控制[7]。因此,微服務技術架構具有部署簡單、可兼容、可擴展、異構性強以及彈性大等特點,利用該技術框架進行自然資源調查監測系統的搭建,可解決海量異構數據的處理、多接口對接以及共享融合多等問題。本系統采用Spring Cloud技術服務框架,實現服務注冊和發現、數據監控、配置中心、日志監控以及容錯限流等功能[8]。微服務服務響應流程示意圖如圖4所示。

圖4 微服務服務響應流程示意圖
在微服務技術框架下,每個微服務接口需要與數據庫進行交互,都會產生輸入/輸出(input/output,I/O) 操作。當系統出現高并發時,將容易造成數據庫I/O 操作堵塞,導致客戶端請求時間延長或者數據庫宕機[9]。因此,為了降低數據庫的I/O 操作,系統采用Redis分布式多級緩存技術來提高數據訪問速度,將使用頻繁的自然資源調查監測數據作為緩存數據藍本,在此基礎上建立服務器內存緩存,當數據訪問時,可直接通過服務接口從內存中獲取數據,從而減少了I/O 操作,提高了系統性能。Redis分布式多級緩存技術I/O 操作流程示意圖如圖5所示。

圖5 Redis分布式多級緩存技術I/O 操作流程示意圖
系統一方面需要集成原有各部門的調查監測系統,從而形成統一的調查監測系統;另一方面需要為政府其他部門或者平臺提供數據和功能服務。原有系統或者其他平臺因技術限制,無法實現技術協同,難以實現集成或者擴展,即便有些系統集成了,使用效率也比較差。因此,本系統采用的Spring Cloud技術框架,利用網關服務實現了不修改外部服務任何代碼的基礎上進行服務集成,還可以根據接入服務數量的不同,采用不同的路由規則。對外服務配置如表1所示。

表1 對外服務配置示意表
系統實現了自然資源各類數據的編輯、質檢和入庫工作,為業務辦理提供數據支撐。數據編輯包括數據新增、修改、刪除等操作[10],例如,對土地利用圖斑數據點擊“修改”按鈕,可以修改圖斑數據的調查人員、圖斑面積、調查時間等屬性信息;數據質檢是對自然資源數據采集編輯完畢后,進行空間拓撲檢查、屬性完整性檢查等,確保數據符合入庫要求;數據入庫由數據質檢完成,點擊“一鍵入庫”按鈕,自動進行數據入庫操作。
系統實現了自然資源各類數據的“一張圖”展示、自然資源調查管理和監測管理、對外服務集成管理以及運維管理。“一張圖”展示實現了自然資源調查監測數據庫的各類數據在統一參考坐標下疊加展示,還包括圖層控制、多屏對比、卷簾控制、空間查詢等功能;自然資源調查和監測管理實現了調查任務從創建調查和監測圖斑、下發調查和監測圖斑、調查和監測圖斑信息填寫、核實調查和監測圖斑信息到調查和監測圖斑提交全過程管理。對外服務集成管理是利用微服務技術框架,將原有的調查監測系統有效進行了集成,從而實現自然資源調查監測統一管理,即:調查監測任務統一創建、下發、調查和提交。運維管理是系統的后臺維護功能,主要包括人員管理、數據管理、服務管理以及權限管理等。
移動終端子系統實現了外業調查人員接收調查監測任務、數據采集以及日常巡查等功能。移動終端子系統與B/S端子系統相互連通,可以快速接收上級下達的調查監測任務,并開展調查監測作業;數據采集是對調查監測圖斑對應區域內的信息進行采集,包括圖斑名稱、圖斑調查內容、圖斑調查時間、聯系人、調查人等信息,還要對圖斑進行拍照和攝像,以保證獲得現場第一手資料;日常巡查包括巡查任務和人員安排、巡查路徑設計、歷史巡查軌跡等功能,輔助調查人員進行日常巡查工作,確保調查監測區域全覆蓋、無遺漏。
為了構建自然資源統一調查監測體系,實現自然資源集中、精細和高效管理,搭建了自然資源調查監測系統。本文闡述了系統建設的框架、數據庫、功能以及關鍵技術。系統建成后取得以下幾點效果,一是利用當前先進的微服務技術框架,實現了部門內多套調查監測系統的集成,且運行效果良好;二是統一了自然資源調查監測體系,實現了調查監測任務統一創建、下發、處理和上報全過程管理,節約了時間,節省了經費,提高了效率;三是系統實現了自然資源部門內部和政府其他部門的互聯互通,數據可共享和交換,提高了數據的利用率。