?

基于微服務理念的三調數據共享管理平臺研究與實現

2022-06-24 10:01趙俊三江新飛
計算機應用與軟件 2022年4期
關鍵詞:數據管理模塊用戶

陳 青 趙俊三,,3* 王 濤 江新飛 秦 睿

1(昆明理工大學國土資源工程學院 云南 昆明 650093) 2(云南云金地科技有限公司 云南 昆明 650102) 3(智慧礦山地理空間信息集成創新重點實驗室 云南 昆明 650093)

0 引 言

實現第三次全國國土調查大量數據成果的信息化管理與共享是滿足生態文明建設、自然資源管理體制改革和國土空間規劃體系建設[1]等的重要手段。因此,優化海量數據處理效率,建成一個操作方便、功能強大、伸縮性強的數據共享管理平臺,提供第三次全國國土調查成果快速共享服務,是圓滿完成三調工作的迫切需要。然而,大數據時代下,傳統單體架構的管理平臺在數據管理、分析和共享方面還有著一定的發展空間。戎愷等[2]設計實現了基于SOA技術的信息數據管理和共享平臺;謝小剛[3]在設計研究了SAR數據管理與共享交互平臺后提出在數據查詢和瀏覽響應時間上的不足;朱麗娟[4]也指出了在功能設計、時間效率和網絡安全性能方面的改進空間;劉茲恒等[5]對我國高??蒲袛祿芾砼c共享平臺調研發現只有少數平臺可以供用戶直接通過平臺創建、上傳和管理數據集,為用戶設置角色和訪問控制權限等,反映了當前數據共享管理平臺的服務能力和共享水平還比較低的現實情況[6]。

本文提出基于微服務的軟件設計理念、數據分布式存儲與管理模式、異步多任務分析調度機制以及基于Token認證的數據共享技術,可有效解決共享管理平臺中服務部署困難、可擴展性差、海量數據管理復雜、多任務分析速度慢、不同層級間數據共享和數據安全等問題。

1 系統總體架構

本文研究參考“自頂向下”的設計思路以及大數據平臺架構設計方法。以實現系統整體效果優為目的,分析平臺實現的需求,從軟件系統開發的角度考慮系統的每個元素和子系統的功能、行為及成本,然后根據各元素之間的協調關系,將其連接成接口輕便實用、關系穩定的子系統,得到總體結構。接著進行邏輯設計,把結構轉化為規則的邏輯結構或采用已經經過驗證的邏輯單元或模塊。最后,選擇合適的數據庫管理、緩存、服務部署等技術實完成系統總體架構的搭建。系統在國家相關的政策法律法規下,按照行業規范和標準,邏輯設計分成了四層,其功能和整體架構如圖1所示。

圖1 整體架構圖

通過數據中心、專題數據綜合應用和系統管理三大子系統構建系統整體架構。在共享服務管理模塊管理著系統中所有的數據共享服務和接口,以微服務的形式將所有的地圖發布、訪問接口、附件目錄、數據瀏覽、分析等服務集成為一個模塊子系統,在子系統中統一管理,保證數據訪問的一致性。各微服務以及數據集部署在不同的服務器上,服務間采用輕量級通信機制,搭建了系統的整體功能模塊。

2 基于微服務理念的數據共享管理平臺實現

微服務架構不僅是一個系統,而且還是一個概念,作為當前系統開發領域的熱點技術之一,該架構將傳統的重量級且緊密耦合的應用程序系統分解為輕量級和松散耦合的微型應用程序,每個微型服務都運行在自己的進程中并相互協同,以減少相互依存和移植,服務間采用HTTP、API這樣輕量級的通信機制使標準化對接變得容易,能夠有效解決單體應用部署、配置、維護的復雜性問題。所有的微服務共同構建起整個系統,易于開發和維護、業務模塊技術不受限制、穩定性高、可伸縮性強,充分體現了高內聚、低耦合的軟件設計理念[7]。這些微服務圍繞業務功能進行構建,可以使用不同的語言來編寫,并且可以使用不同的數據存儲技術。

Spring Cloud是當前微服務主流的開發框架,具備開箱即用的特性,可極大提高開發效率,為微服務架構提供了整套的解決方案[7]。微服務不強行依賴于運行平臺,可根據需求通過Docker、Tomcat等容器部署在本地服務器、阿里云及百度云等服務平臺。

與傳統的單體架構相比,本文提出的基于微服務的前后端分離的架構設計開發方式在用戶訪問量密集的情況下,或者高并發的普查大數據系統中,可以發揮出巨大的優勢。并且由于系統拆分、分庫分表、讀寫分離等特點,當某個微服務需要修改調試時,只需重新部署該微服務或針對性地對該微服務進行增加內存、升級CPU或增加節點等操作即可方便地解決問題。系統搭建的架構如圖2所示。

圖2 基于微服務理念的系統架構圖

前端采用的是Nginx框架來實現控制層和視圖層,采用jQuery對應用層進行服務請求。使用者通過特定的URL訪問平臺,而平臺利用SSO單點登錄來對用戶的權限進行控制。用戶只需要在一個頁面登錄就能夠獲取到系統內各個服務模塊的授權使用,后續擴展應用模塊也可以快速地接入到現有的統一服務中。平臺不同微服務之間使用輕量級的通信機制RESTful API以實現交互,它的數據輸出格式支持包括JSON、XML等。平臺服務層使用Nacos組件實現微服務的注冊和發現、身份認證和動態路由。配置中心采用Spring Cloud Config實現統一配置管理,并且基于微服務的特性,利用Tomcat服務集群作為容器。在數據資源層使用MyBatis框架,提出分布式方式分布在不同的服務器中對數據進行分析管理,當前登錄的用戶信息儲存在Redis數據庫,其他入庫及成果附件、更新數據存儲在PostgreSQL數據庫中,空間數據則可以通過分布式存儲引擎存儲在不同的數據庫中。系統整體集群邏輯如圖3所示。

圖3 系統分布式集群圖

3 數據共享模式開發與實現

在數據的采集調查以及今后的統一時點更新工作開展結束后,形成的數據、圖件、文字和數據庫成果從大類上劃分可以分為三類:空間數據、舉證成果和成果文檔資料。這些數據的管理與共享成了亟待解決的問題,從穩定性、可擴展性、開源等幾個方面考慮,平臺選用GeoJSON、PostgreSQL、GeoSever、OpenLayers、SSO單點登錄等數據標準和關鍵技術,通過數據管理服務、數據分析服務和數據授權服務完成數據共享模式的實現。

3.1 數據管理服務

數據管理模塊主要針對空間數據進行管理??臻g數據指影像和矢量地圖,包含了人們能夠見到的所有地物的抽象要素,將通過質量檢查后的三調矢量數據放置到平臺空間數據庫進行管理,包括數據入庫、數據發布、數據更新等。

(1) 數據入庫。平臺通過提供數據入庫的接口,以統一的GeoJSON格式的數據標準入庫,并采用PostgreSQL+PostGIS技術存儲和管理數據。

(2) 數據發布。本平臺使用GeoSever管理和發布數據,OpenLayers技術展示數據。通過在B/S端操作,對數據做一站式發布和切片管理,將這些數據發布為服務,提供其他的地方使用,以實現地圖數據的發布和共享。并且系統可以針對不同用戶權限,發布不同的數據,提供不同的接口。

(3) 數據更新。數據的更新機制分為增量數據更新和整庫數據更新??梢灾苯釉贐/S端進行操作,實現數據的版本更新,更新保留以前數據的版本記錄。同時,數據管理模塊可以對所有的使用數據進行監控,如數據的總量是多少、完成的總量是多少、附加總量、各服務的訪問總量等,這些數據會在數據監控模塊中以圖表的形式呈現,以便于更直觀地了解數據的狀態。

3.2 數據分析服務

本文提出了異步多任務分析模式提高分析效率,待分析完成后將數據結果返回給用戶。具體流程如圖4所示。

圖4 后臺分析調度服務流程

在分析調度過程中,首先確定了統一的分析結果數據結構及傳遞的參數格式和結果存儲方式,包括JSON、XML等。通過已確定的分析結果數據結構進行存儲數據,然后按照結果數據結構,編寫調用數據的服務入口規范文檔。這樣,在前端做數據分析的時候,數據通過調度服務入口傳入參數,通過后臺分析調度服務(Background Analysis Scheduling Service,BASS)程序傳入系統空間庫,在大量數據區域中抓取所需數據,進行如:數據入庫、占地分析、流量分析、統計分析、數據更新等操作,得到分片數據。最后調用服務接口以獲得按確定格式輸出的分析結果、進度數據或錯誤日志數據,將數據進行解析并通過HTML超文本規范進行前端數據展示,前端可同時展示多個分析窗口。至此,分析調度服務完成。

3.3 數據授權服務

數據權限管理是通過SSO單點登錄技術,在平臺使用者申請平臺使用權限時,管理員針對權限不同的使用者可以訪問、查看哪些數據做出了相關的配置。同時,服務器自動賦予使用者相應的opentoken,在每個共享服務請求時,對該使用者的opentoken進行校驗,校驗時間有效性、權限有效性和請求服務的正確性等以實現權限的檢查和過濾。

對于數據和模塊的授權服務是不同的,雖然都是通過opentoken進行攔截,但是對于模塊的授權管理是在客戶端請求后,SSO服務在其訪問應用層之前進行攔截,檢查其是否有訪問模塊功能的權限。在平臺使用者對各個模塊進行操作分析后,想要返回所需數據,也必須通過SSO服務檢查過濾其權限才能得到其權限內的數據。服務授權和調用流程如圖5、圖6所示。

圖5 微服務授權流程

圖6 微服務調用流程

4 應用分析

4.1 系統用戶的使用

系統內部使用角色權限管理進行數據接口控制。用戶在平臺界面注冊賬戶,聯系管理員說明需要的模塊功能或者數據,管理員則在系統管理子系統的權限管理中將對應的角色分配給該用戶,即服務器生成相應權限的opentoken參數賦予該用戶,同時還可以設置該權限的有效日期。例如系統用戶想要對地圖數據進行分析,則聯系管理員分配其專題數據綜合應用管理員的角色,該系統用戶就能對專題數據綜合應用子系統進行操作,使用該子系統中的空間數據分析、附件管理和專題圖瀏覽查詢等功能。用戶瀏覽舉證成果時,舉證位置、方位、圖像及其他信息的界面如圖7所示。

圖7 舉證“一張圖”界面

4.2 共享用戶的使用

系統的外部使用微服務授權,管理員設置opentoken的數據訪問過濾條件。在共享用戶申請使用某些微服務接口時,管理員在數據中心子系統的共享服務管理處新增用戶所需接口的URL地址和參數等信息,可共享的接口有:組件服務、數據服務和地圖服務。

管理員在新增接口后,應在服務授權管理模塊對該用戶進行服務授權,操作完成后,用戶可以得到相應的opentoken。這樣,不同需求的用戶就可以在不同的平臺上通過對應的方式調用接口地址以及傳入相應的參數和opentoken就可以在其他平臺上使用該接口的功能。如網頁用戶可以通過post請求該接口的URL和opentoken在網頁端使用該接口。

4.3 用戶權限的管理

在對數據和模塊的授權服務中,管理員同樣通過權限管理找到被授權用戶的信息,對其進行編輯角色或編輯模塊功能的操作,以實現對用戶的數據和功能模塊訪問權限的管理。這樣,不同角色的用戶可訪問的數據和模塊功能不同。例如要對某數據中心管理員的功能模塊的權限進行限制,設置界面如圖8所示。

圖8 功能模塊權限設置界面

5 結 語

本文介紹了三調數據共享管理平臺實現的關鍵技術。在第三次全國國土調查采集的大量數據成果的基礎上,提出了基于微服務設計理念的架構體系,利用異步多任務分析調度機制、ArcEngine和PostGIS技術處理、分析和統計地理信息數據,SSO單點登錄技術驗證平臺使用者的信息,GeoServer技術發布和共享地圖數據,OpenLayers技術來展示地圖,并通過PostgreSQL數據庫集群存儲和管理空間數據。平臺具有低耦合、高可用、可擴展等特點,能夠很好地完成數據的管理應用、統計分析、更新維護、接收上報和數據備份等功能,可適應高并發條件下的多任務數據分析、展示等操作,具備分布式處理能力,也保證了在管理、操作數據方面的安全性問題,有效地解決了傳統共享管理平臺服務間關系復雜、分析效率低、容錯性差等問題,可適用于不同州市級三調成果數據共享服務平臺,對該領域相關問題具有較好的參考價值。

猜你喜歡
數據管理模塊用戶
企業級BOM數據管理概要
基于用戶和電路的攻擊識別方法
定制化汽車制造的數據管理分析
2021少兒出版用戶觸達能力指數
航發葉片工藝文件數據管理技術研究
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
數據挖掘在學生成績數據管理中的應用研究
數據挖掘在學生成績數據管理中的應用研究
信用卡資深用戶
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合