陳長宇
(廣州南方智能技術(shù)有限公司 廣東 廣州 510663)
市政工程智慧勘察信息系統(tǒng)是應(yīng)用于市政工程項目勘察數(shù)據(jù)信息化管理的平臺,是推動測繪工作朝向智慧化方向發(fā)展的重要載體。 在信息管理系統(tǒng)設(shè)計中,需要依照需求規(guī)格說明確定設(shè)計目標,確定各個目標的優(yōu)先順序并找出最合適的設(shè)計方法,確定設(shè)計工作需要遵循的基本規(guī)范;依照系統(tǒng)功能劃分為模塊的層次結(jié)構(gòu),確定各個模塊的功能,構(gòu)建與已確定軟件需求的對應(yīng)關(guān)系;確定模塊之間對應(yīng)關(guān)系及接口,確保信息準確傳遞,設(shè)計接口的信息結(jié)構(gòu),評估模塊劃分質(zhì)量及模塊結(jié)構(gòu)導(dǎo)出規(guī)則;優(yōu)化數(shù)據(jù)庫結(jié)構(gòu),避免后期運行中出現(xiàn)數(shù)據(jù)不必要冗余現(xiàn)象。
某市政道路工程測繪數(shù)據(jù)信息化項目,由本企業(yè)承建,負責完成智慧勘察信息管理系統(tǒng)建設(shè),并能夠通過建設(shè)單位系統(tǒng)測試要求。 項目建設(shè)內(nèi)容主要包括:(1)數(shù)據(jù)中心管理子系統(tǒng),如業(yè)務(wù)數(shù)據(jù)庫、一張底圖、項目數(shù)據(jù)庫、系統(tǒng)信息庫、數(shù)據(jù)庫管理、數(shù)據(jù)處理及其他功能。 (2)項目管理一張圖子系統(tǒng)。 主要包括項目信息可視化、項目信息管理和重點項目展示等模塊。 (3)成果綜合展示子系統(tǒng)。 主要包括成果一張圖、成果場景搭建、數(shù)據(jù)分析與應(yīng)用等模塊。 (4)智慧生產(chǎn)業(yè)務(wù)子系統(tǒng)。 主要包括智慧勘察、智慧測量、智慧物探等模塊。 (5)勘察移動端子系統(tǒng),如勘察移動APP 和物探APP 等。 (6)接口建設(shè)。 主要實現(xiàn)數(shù)據(jù)集成管理和外業(yè)數(shù)據(jù)共享,通過各個子系統(tǒng)的對接,滿足各項信息管理要求。
項目建設(shè)目標是以當前測繪行業(yè)數(shù)字化轉(zhuǎn)型趨勢及發(fā)展方向為導(dǎo)向,遵循“平臺化、中心化、集約化和數(shù)字化”要求,開發(fā)建設(shè)智慧工程數(shù)據(jù)信息化生產(chǎn)與管理系統(tǒng)。 在系統(tǒng)運行中,通過對項目工程專業(yè)數(shù)據(jù)的采集、傳輸、計算、分析和監(jiān)控等過程管理,結(jié)合三維可視化技術(shù)融合應(yīng)用,實現(xiàn)工程項目大數(shù)據(jù)深度挖掘分析,大屏展示及智能化應(yīng)用,推動企業(yè)項目管理朝向數(shù)字化方向轉(zhuǎn)型。
根據(jù)測繪信息化相關(guān)國家標準、專業(yè)標準、行業(yè)規(guī)范、技術(shù)規(guī)定,現(xiàn)行軟件工程標準規(guī)范,從客戶需求導(dǎo)向出發(fā),依照實際硬件情況,采用分布式部署方式,共計布置7 臺服務(wù)器,其中4 臺應(yīng)用服務(wù)器(基于Linux 系統(tǒng)3 臺,基于Windows 系統(tǒng)1 臺)、2 臺數(shù)據(jù)服務(wù)器(Linux)、1 臺數(shù)據(jù)備份服務(wù)器(Linux)。 項目數(shù)據(jù)庫平臺采用PostgreSQL 14.0標準版版本。 業(yè)務(wù)系統(tǒng)部分采用Spring Cloud 架構(gòu),以B/S 模式部署客戶端,開發(fā)軟件IDE 選用IntelliJ IDEA 2021和Microsoft Visual Code 2021,開發(fā)語言選用Java,Vue 3、TypeScript 等。 數(shù)據(jù)交換接口采用HTTP 協(xié)議,以JSON 為數(shù)據(jù)交換標準格式。
本管理平臺通過三個子系統(tǒng)協(xié)作,在設(shè)計中主要使用如下方面關(guān)鍵技術(shù):(1)輕量化技術(shù)。 基于點云、BIM 模型、傾斜模型、人工建模模型、地形、影像及矢量等多種數(shù)據(jù)的快速轉(zhuǎn)化及切片處理,自動化發(fā)布至平臺,確保數(shù)據(jù)在Web 端高效流轉(zhuǎn)和分層級快速加載,提升Web 端瀏覽及訪問流暢性,實現(xiàn)快速響應(yīng)。 (2)分布式計算技術(shù),如中間件技術(shù)、移動Agent、Web Service 技術(shù)等,推動計算環(huán)境優(yōu)化,提升分布式操作便捷性。 (3)數(shù)據(jù)接入和管理技術(shù)。 本項目中采用PostgreSQL 和PostGIS 空間數(shù)據(jù)庫技術(shù),有效解決工程項目實施過程中空間數(shù)據(jù)類型復(fù)雜帶來的運行問題。 通過擴展關(guān)系型數(shù)據(jù)庫,實現(xiàn)空間數(shù)據(jù)和非空間數(shù)據(jù)的一體化存儲。 (4)數(shù)據(jù)/業(yè)務(wù)集成、業(yè)務(wù)管理、應(yīng)用分析、數(shù)據(jù)可視化、兼容性技術(shù)。 以本司所自主研發(fā)、具有自主產(chǎn)權(quán)的技術(shù)為基礎(chǔ),提供二三維大數(shù)據(jù)處理、存儲、管理、展示、分析及行業(yè)應(yīng)用的全流程服務(wù),以組件式開發(fā)方式,滿足具體測繪工程業(yè)務(wù)集成和管理需求,以強大兼容性滿足平臺測繪數(shù)字化工程數(shù)據(jù)加載及可視化顯示等需求。 (5)Web Service 技術(shù)。 實現(xiàn)數(shù)據(jù)共享與發(fā)布,實現(xiàn)業(yè)務(wù)層、業(yè)務(wù)面及監(jiān)聽者等之間的邏輯交互。 (6)可擴展性技術(shù)。 主要包括面向服務(wù)的架構(gòu)(SOA)技術(shù),組件化、構(gòu)件化開發(fā)技術(shù)等,確保業(yè)務(wù)流程快速構(gòu)建、重構(gòu)、再造和優(yōu)化。 (7)安全技術(shù)。 主要包括網(wǎng)絡(luò)安全、數(shù)據(jù)庫安全和應(yīng)用系統(tǒng)安全的針對性技術(shù),構(gòu)建完善的安全防護體系。
智慧勘察信息管理系統(tǒng)設(shè)計中,為確保項目建設(shè)有序推進,滿足系統(tǒng)測試和運行要求,應(yīng)當遵循如下方面原則:(1)實用性和易用性原則。 便于使用、管理和維護,有效減輕工作人員負擔。 (2)標準化和開放性原則。 系統(tǒng)建設(shè)應(yīng)當嚴格遵照國家、地方和行業(yè)有關(guān)標準及規(guī)范進行,在系統(tǒng)架構(gòu)、應(yīng)用技術(shù)及平臺建設(shè)方面,都應(yīng)當采用開放性策略,構(gòu)建開放、可擴充的應(yīng)用體系,有效提升數(shù)據(jù)共享水平。 (3)高可靠性原則。 確保適量冗余并優(yōu)化安全保護措施,確保平臺軟件和應(yīng)用軟件都具有較強的容錯性、穩(wěn)健性和安全性。 (4)高效性原則。 能夠確保各類數(shù)據(jù)組織合理,信息查詢、更新、出圖順暢,且不會由于長時間運行和數(shù)據(jù)量增加導(dǎo)致運行速度變緩。 (5)可擴展性和先進性原則。 要能夠滿足系統(tǒng)間無縫連接需求,為后續(xù)系統(tǒng)擴展和集成留出擴充余量。 在成本預(yù)算方案下,盡量采用最先進的技術(shù)、方法、軟件和硬件,有效延長系統(tǒng)生命周期[1]。
結(jié)合上述設(shè)計原則和思路,實現(xiàn)各個子系統(tǒng)、智慧移動端子系統(tǒng)等有效銜接,實現(xiàn)對項目數(shù)據(jù)進行統(tǒng)一管理與瀏覽查詢,并能瀏覽三維點云、BIM、三維傾斜等模型結(jié)構(gòu)中的三維數(shù)據(jù)。 總體架構(gòu)設(shè)計如圖1 所示。
圖1 系統(tǒng)架構(gòu)圖
其中用戶層是服務(wù)于不同設(shè)備的接入用戶。 展示層主要是通過項目一張圖展示,多維度、多形式統(tǒng)計圖表、三維可視化展示及移動APP 等,展示用戶所需要的數(shù)據(jù)信息內(nèi)容。 應(yīng)用層是用戶與平臺的交互界面,在滿足各項功能運行基礎(chǔ)上,最終實現(xiàn)生產(chǎn)與管理信息化[2]。 支撐層是整個系統(tǒng)運行的樞紐,負責整個體系的后臺服務(wù)、管理應(yīng)用、數(shù)據(jù)處理等功能,確保各個系統(tǒng)之間數(shù)據(jù)有效關(guān)聯(lián)和管理,為應(yīng)用業(yè)務(wù)實施提供支撐。 數(shù)據(jù)層包括空間數(shù)據(jù)庫和成果檔案數(shù)據(jù)庫,主要是實現(xiàn)系統(tǒng)各類數(shù)據(jù)的集中管理與統(tǒng)一應(yīng)用。 基礎(chǔ)設(shè)施層是系統(tǒng)運行的基礎(chǔ),主要是滿足平臺數(shù)據(jù)管理、存儲、更新和應(yīng)用需要,為系統(tǒng)穩(wěn)定高效運行提供基礎(chǔ)環(huán)境。
搭建Nginx、Spring Gateway 負載均衡服務(wù)器集群,Nginx 將用戶請求轉(zhuǎn)發(fā)至Spring Gateway 網(wǎng)關(guān),經(jīng)登錄、安全等相關(guān)攔截,再轉(zhuǎn)發(fā)至注冊在Nacos 的對應(yīng)服務(wù),進行相應(yīng)處理,實現(xiàn)如下方面具體服務(wù):用戶登錄及權(quán)限攔截相關(guān)功能,系統(tǒng)業(yè)務(wù)以及提供地圖數(shù)據(jù)發(fā)布、可視化相關(guān)操作功能,地圖數(shù)據(jù)在線輕量化功能,場景相關(guān)功能服務(wù),用戶機構(gòu)等管理服務(wù),場景數(shù)據(jù)分析服務(wù)。 利用Redis 數(shù)據(jù)庫,緩存服務(wù)常用數(shù)據(jù)。 利用PostgreSQL 數(shù)據(jù)庫對系統(tǒng)數(shù)據(jù)信息進行持久化處理。 利用SeaweedFS 分布式文件存儲系統(tǒng),存儲數(shù)據(jù)輕量化后的文件
架構(gòu)設(shè)計遵循“先設(shè)計后開發(fā)”原則,確定好時序圖、UML 關(guān)系圖,將需求、場景抽象成模型(建模),并將模型拆分成模塊,形成架構(gòu)。 模型需考慮并兼容后續(xù)需求的迭代開發(fā),減少架構(gòu)的修改。 模塊設(shè)計應(yīng)當盡量減少依賴關(guān)系,以接口方式形成依賴[3]。 以“測試驅(qū)動開發(fā)”,以測試用例檢驗功能開展的完成。 類的設(shè)計應(yīng)當職責單一,集中于處理某個方面的事務(wù)。 單個類的代碼行數(shù)應(yīng)當控制在1 000 行以內(nèi),提高可讀性。 單個函數(shù)集中處理一個功能,保持在100 行以內(nèi),參數(shù)控制在3 個以內(nèi),邏輯緊湊,減少代碼的無用執(zhí)行。 日志設(shè)計不能暴露用戶個人信息,長度不能過長且包括盡量多的信息。
Web 前端開發(fā)需符合(UTF-8,HTML5)標準,語義化HTML,結(jié)構(gòu)表現(xiàn)為分離,具有較好的兼容性,使用精靈圖和Sass 語法等減少頁面請求次數(shù),代碼設(shè)計簡潔有序,盡量減少服務(wù)器負載并能夠快速解析。 所遵循的規(guī)范內(nèi)容主要包括文件命名規(guī)范、HTML 規(guī)范、CSS 規(guī)范、JS 書寫規(guī)范、圖片規(guī)范和測試規(guī)范等。 在Java 開發(fā)中,應(yīng)當遵循的標準規(guī)范包括編程規(guī)約(命名風(fēng)格、常量定義、代碼格式、OOP 規(guī)約、集合處理、并發(fā)處理、控制語句、注釋規(guī)約),異常日志規(guī)范(異常處理、日志規(guī)約),單元測試,安全規(guī)約,工程結(jié)構(gòu)(應(yīng)用分層、二方庫依賴、服務(wù)器),設(shè)計規(guī)約等。
數(shù)據(jù)存儲設(shè)計應(yīng)當遵循一致性和標準性、實用性、獨立性和擴展性、數(shù)據(jù)安全性等基本原則。 依照數(shù)據(jù)處理特點和特性表達要求,將數(shù)據(jù)表分為業(yè)務(wù)數(shù)據(jù)表、基礎(chǔ)數(shù)據(jù)表、字典信息表、系統(tǒng)信息表、匯總數(shù)據(jù)表、臨時表等。 數(shù)據(jù)對象命名遵循三段式命名、中文簡稱命名規(guī)范。 表中的所有數(shù)據(jù)元素不但要能唯一地被主關(guān)鍵字所標識,而且它們之間還必須相互獨立,不存在其他函數(shù)關(guān)系,但是在特殊情形下,可以犧牲范式規(guī)范以換取性能提升[4]。 在遵循設(shè)計范式基礎(chǔ)上,合理劃分表并添加狀態(tài)和控制字段,以有效提升業(yè)務(wù)運行水平。
數(shù)據(jù)庫設(shè)計分為六個階段:(1)系統(tǒng)需求分析;(2)概念結(jié)構(gòu)設(shè)計;(3)邏輯結(jié)構(gòu)設(shè)計;(4)物理結(jié)構(gòu)設(shè)計;(5)數(shù)據(jù)庫實施;(6)數(shù)據(jù)庫運行與維護。 數(shù)據(jù)安全保障措施,主要包括數(shù)據(jù)備份、權(quán)限管理敏感數(shù)據(jù)加密及應(yīng)用訪問安全方面的處理。 為確保數(shù)據(jù)庫保持良好運行狀態(tài),還應(yīng)當進行基本表設(shè)計,并做好基本表擴展設(shè)計。 在數(shù)據(jù)存儲設(shè)計中,重點做好非結(jié)構(gòu)化數(shù)據(jù)采集和存儲優(yōu)化,為所有數(shù)據(jù)類型提供合適的存儲選項。
接口設(shè)計應(yīng)當遵循高內(nèi)聚、低耦合和精分解原則,以降低各系統(tǒng)間以及系統(tǒng)內(nèi)各模塊間的耦合度,滿足基礎(chǔ)數(shù)據(jù)傳遞、流程審批集成、頁面展現(xiàn)集成等需求。 在設(shè)計時先確定接口設(shè)計規(guī)范,內(nèi)部接口主要包含數(shù)據(jù)接口和服務(wù)調(diào)用接口,如數(shù)據(jù)共享、登錄接口、移動端查詢項目列表等。 外部平臺則包括從綜合管理平臺獲取用戶組織架構(gòu),綜合管理平臺API 接口,為用戶提供應(yīng)用接口,提供二三維模塊地圖場景授權(quán)認證等服務(wù)。
接口設(shè)計中,需要先定義數(shù)據(jù)模式和傳遞數(shù)據(jù)的形式等,系統(tǒng)內(nèi)部接口主要滿足內(nèi)部數(shù)據(jù)的自動流轉(zhuǎn),外部接口則需要實現(xiàn)本項目與其他應(yīng)用系統(tǒng)間的數(shù)據(jù)交換,需要先由接收數(shù)據(jù)系統(tǒng)依照數(shù)據(jù)模式的定義,到對方系統(tǒng)去識別、采集,之后轉(zhuǎn)換為本系統(tǒng)能夠識別和利用的數(shù)據(jù)模式[5]。 接口實現(xiàn)方式包括Web Service 方式、RPC/Iframe方式、JDBC 方式、API 方式等,并完善共享目錄接口和數(shù)據(jù)交換方式設(shè)計。
除做好上述設(shè)計外,還應(yīng)當做好系統(tǒng)物理配置方案、數(shù)據(jù)安全和保密、計算機處理過程等方面設(shè)計。
數(shù)據(jù)中心管理子系統(tǒng)主要實現(xiàn)工程項目相關(guān)成果的匯交、管理,便于基礎(chǔ)數(shù)據(jù)庫更新維護,構(gòu)建高效、智能的數(shù)據(jù)管理模式。 其中數(shù)據(jù)資源管理主要包括數(shù)據(jù)入庫、目錄管理、數(shù)據(jù)查詢、高級查詢、數(shù)據(jù)瀏覽、影像切片、數(shù)據(jù)更新與管理等方面設(shè)計。 系統(tǒng)管理主要包括權(quán)限管理、組織架構(gòu)管理、用戶管理、系統(tǒng)日志等方面設(shè)計。
成果綜合展示子系統(tǒng)是提供可視化界面,基于預(yù)先準備的服務(wù)器資源,發(fā)布多種類型的空間地理信息服務(wù),并支持對發(fā)布的服務(wù)進行統(tǒng)一管理。 主要包括服務(wù)發(fā)布與管理、三維數(shù)據(jù)瀏覽、全景影像瀏覽、地圖量算、標繪等功能。
智慧勘察移動端子系統(tǒng),主要是應(yīng)用于現(xiàn)場施工人員進行數(shù)字化測量,實現(xiàn)任何辦公地點和任何辦公時間的無縫接入。 需要進行登錄移動端子系統(tǒng)、連接數(shù)據(jù)中心管理子系統(tǒng)等方面設(shè)計。
為實現(xiàn)本系統(tǒng)與多個現(xiàn)有管理系統(tǒng)的交互,滿足基礎(chǔ)數(shù)據(jù)傳遞、流程審批集成、頁面展現(xiàn)集成等功能需求,還需要提供配置式多種標準接口。 在設(shè)計中,應(yīng)當滿足多接口支撐應(yīng)用擴展規(guī)范,采用Web Service 方式,SOA 體系架構(gòu)實現(xiàn)對接。 通過接口交換的數(shù)據(jù)與接口調(diào)用應(yīng)當遵循統(tǒng)一的接口模型進行設(shè)計,系統(tǒng)平臺間的接口消息協(xié)議采用基于HTTP 協(xié)議的REST 風(fēng)格接口實現(xiàn),請求消息URI 中的參數(shù)采用UTF-8 編碼并經(jīng)過URLEncode 編碼[6]。 具備業(yè)務(wù)數(shù)據(jù)檢查、數(shù)據(jù)壓縮/解壓等數(shù)據(jù)管理功能,確保數(shù)據(jù)管理完整性。
測試環(huán)境中,操行系統(tǒng)選擇Windows 10 專業(yè)版64位;瀏覽器為谷歌Chrome 瀏覽器、火狐瀏覽器、360 瀏覽器;客戶機硬件配置為Intel(R) Core(TM) i7-10750 H CPU@2.60 GHz 2.59 GHz、內(nèi)存16 G。 測試結(jié)果顯示,所有子系統(tǒng)運行正常,功能完善,共計關(guān)閉bug299 處。 安全性測試和易用性測試達到要求,系統(tǒng)結(jié)構(gòu)層次清晰合理,滿足測試標準要求,可投入正常使用。
在智慧勘察信息管理系統(tǒng)設(shè)計中,必須以專業(yè)標準、行業(yè)規(guī)范和軟件工程標準為基本依據(jù),優(yōu)化系統(tǒng)運行環(huán)境,重點做好輕量化技術(shù)、分布式計算技術(shù)、數(shù)據(jù)接入和管理技術(shù)等關(guān)鍵技術(shù)應(yīng)用,利用更為優(yōu)化的代碼設(shè)計、數(shù)據(jù)存儲和接口設(shè)計方案,有效提升系統(tǒng)整體功能。