高 珅,陳繼培,黃家凱
(1. 湖北省國土測繪院,湖北 武漢 430010;2. 湖北省地質(zhì)調(diào)查院,湖北 武漢 430030)
研究多源三維GIS 數(shù)據(jù)的服務(wù)發(fā)布相關(guān)技術(shù),進(jìn)行數(shù)據(jù)服務(wù)發(fā)布平臺的研制,不僅能夠為用戶提供更低成本、更高效率、及時響應(yīng)的地圖發(fā)布產(chǎn)品,為數(shù)據(jù)生產(chǎn)、數(shù)據(jù)發(fā)布、信息共享、應(yīng)用系統(tǒng)集成提供工具,還能通過與其他數(shù)據(jù)平臺集成,拓展平臺的數(shù)據(jù)范圍,滿足二三維一體化的建設(shè)需求[1-2]。
本文將采用SOA架構(gòu)建設(shè)一套針對主流三維數(shù)據(jù)的服務(wù)發(fā)布平臺,為三維GIS 數(shù)據(jù)在發(fā)布平臺下的無縫轉(zhuǎn)換、快捷發(fā)布以及與前端三維GIS 引擎的集成提供可行的技術(shù)方法。
隨著測繪技術(shù)、計算機(jī)與網(wǎng)絡(luò)技術(shù)、虛擬現(xiàn)實技術(shù)的飛速發(fā)展,三維GIS 逐漸突破原有技術(shù)瓶頸,憑借著空間信息展示更直觀、多維度空間分析更強(qiáng)大的優(yōu)勢,在跨業(yè)務(wù)、跨終端、跨平臺等方面,得到了越來越廣泛的應(yīng)用,極大的提升了對地理信息的共享和利用效率[3]。為實現(xiàn)多源三維GIS數(shù)據(jù)的快速發(fā)布,以及發(fā)布數(shù)據(jù)與業(yè)務(wù)一張圖、大數(shù)據(jù)平臺等其他前端展示平臺的快速集成,減少數(shù)據(jù)處理發(fā)布的整合時間,提高數(shù)據(jù)發(fā)布和集成效率,本文就多源三維數(shù)據(jù)發(fā)布平臺的研發(fā)開展了相關(guān)工作。
當(dāng)前,三維GIS 數(shù)據(jù)來源多,格式多樣,容量大,存儲量隨著時間增長是海量的,而適合于海量數(shù)據(jù)傳輸、發(fā)布與共享的數(shù)據(jù)格式標(biāo)準(zhǔn)主流的有三類:超圖公司的S3M 數(shù)據(jù)格式、OGC 的基于I3S 規(guī)范的SPLK格式以及Cesium的3DTiles格式。Cesium是使用WebGL的一種三維數(shù)據(jù)引擎,也是一種應(yīng)用最為廣泛的開源三維框架,具有成本低、開發(fā)簡單、支持多種數(shù)據(jù)可視化方法、可跨平臺等諸多優(yōu)勢[4-6]。本文將以Cesium 的3DTiles 格式作為三維數(shù)據(jù)發(fā)布平臺的數(shù)據(jù)標(biāo)準(zhǔn),平臺能夠利用轉(zhuǎn)換工具將主流的三維數(shù)據(jù)格式轉(zhuǎn)換為3DTiles 格式,并對發(fā)布后的三維數(shù)據(jù)服務(wù)進(jìn)行管理維護(hù),其他前端展示平臺系統(tǒng)可通過對三維數(shù)據(jù)服務(wù)進(jìn)行快速訪問的方式,實現(xiàn)多源三維數(shù)據(jù)服務(wù)與其他前端展示平臺系統(tǒng)的快速集成,如圖1所示。
圖1 數(shù)據(jù)服務(wù)調(diào)用流程圖
考慮到SOA 技術(shù)在應(yīng)用集成和服務(wù)動態(tài)發(fā)布與綁定方面的優(yōu)勢[7-8],平臺采用基于SOA 的技術(shù)架構(gòu),采用超文本傳輸協(xié)議(HTTP),以3DTiles 格式作為平臺數(shù)據(jù)標(biāo)準(zhǔn),以擴(kuò)展標(biāo)記語言(XML)作為信息交換格式,實現(xiàn)多源三維數(shù)據(jù)的服務(wù)發(fā)布和管理。同時,平臺可兼容多源數(shù)據(jù)格式,無需編程實現(xiàn)三維GIS 地圖數(shù)據(jù)高效發(fā)布,快速響應(yīng)前端展示平臺如業(yè)務(wù)一張圖系統(tǒng)、大數(shù)據(jù)平臺等的數(shù)據(jù)集成需求。
平臺的總體架構(gòu)主要包括業(yè)務(wù)層、服務(wù)層、平臺層和數(shù)據(jù)層,其中業(yè)務(wù)層和服務(wù)層之間通過SOA總線進(jìn)行服務(wù)調(diào)用,具體如圖2所示。
圖2 總體架構(gòu)
1)數(shù)據(jù)層。數(shù)據(jù)層主要包括已有的符合標(biāo)準(zhǔn)的外部數(shù)據(jù)服務(wù)和經(jīng)過數(shù)據(jù)標(biāo)準(zhǔn)化處理后形成的數(shù)據(jù)服務(wù)。對于OBJ、OSGB、M3D、FBX、glTF、S3M 等其他格式標(biāo)準(zhǔn)的三維數(shù)據(jù),通過數(shù)據(jù)轉(zhuǎn)換工具處理后,可制作成符合發(fā)布平臺數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)服務(wù)。
2)平臺層。平臺層主要由各項數(shù)據(jù)、服務(wù)相關(guān)的應(yīng)用功能組成。三維數(shù)據(jù)發(fā)布平臺提供了對各類數(shù)據(jù)資源的管理以及相關(guān)服務(wù)的聚合、調(diào)用以及配置管理。
3)服務(wù)層。服務(wù)層提供數(shù)據(jù)服務(wù)與功能服務(wù),平臺可通過單個服務(wù)或多個服務(wù)組件集成的方式提供對外服務(wù)接口。
4)業(yè)務(wù)層。業(yè)務(wù)層包括各類需進(jìn)行數(shù)據(jù)或功能服務(wù)調(diào)用的外部平臺系統(tǒng),通過SOA總線,對服務(wù)層中的各類功能、數(shù)據(jù)服務(wù)進(jìn)行調(diào)用,從而滿足外部平臺的數(shù)據(jù)訪問或功能使用需求。
三維GIS 數(shù)據(jù)來源眾多,數(shù)據(jù)量大,不僅不同數(shù)據(jù)的所屬部門各不相同,其使用過程中面向的用戶或集成平臺也各不相同,因此對三維GIS 數(shù)據(jù)的管理不僅要考慮資源訪問權(quán)限問題,也要考慮其動態(tài)集成問題。SOA作為一種以服務(wù)為核心的系統(tǒng)架構(gòu),利用不同服務(wù)之間定義良好且中立的接口,與協(xié)議聯(lián)系起來,從而獨(dú)立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,這使得構(gòu)建在不同系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互,滿足不同系統(tǒng)的集成需求[9]。
平臺以SOA所具備的松散耦合的服務(wù)分層結(jié)構(gòu)為基礎(chǔ),通過中間件法進(jìn)行數(shù)據(jù)集成,并采用基于Web服務(wù)技術(shù)的實現(xiàn)方式,將對多源三維數(shù)據(jù)的操作都封裝在不同粒度的服務(wù)中,這些服務(wù)又可以根據(jù)用戶或平臺集成的不同需求進(jìn)行任意組合,這也決定了平臺能夠滿足復(fù)雜的數(shù)據(jù)訪問請求。
用戶在平臺中使用數(shù)據(jù)時,以服務(wù)調(diào)用而不是點(diǎn)對點(diǎn)傳輸?shù)姆绞竭M(jìn)行信息獲取,服務(wù)的可重用性又保證了平臺能夠滿足被不同應(yīng)用場景反復(fù)調(diào)用的使用需求。同時,通過對服務(wù)調(diào)用的授權(quán)管理,保證了數(shù)據(jù)使用在權(quán)限允許的范圍內(nèi)進(jìn)行,從而使數(shù)據(jù)的使用更為靈活便利。
服務(wù)作為SOA的核心概念,其主要參與者包括服務(wù)提供者、注冊者和請求者。為保證數(shù)據(jù)服務(wù)的標(biāo)準(zhǔn)性與通用性,整個數(shù)據(jù)管理過程都遵照統(tǒng)一的OGC標(biāo)準(zhǔn)與規(guī)范進(jìn)行,使不同的參與者在使用發(fā)布平臺的過程中遵循統(tǒng)一的標(biāo)準(zhǔn)規(guī)范,從而保證服務(wù)調(diào)用、集成的順暢進(jìn)行。
數(shù)據(jù)發(fā)布平臺中的數(shù)據(jù)發(fā)布功能模塊提供對各類數(shù)據(jù)資源的綜合管理,相關(guān)數(shù)據(jù)的生產(chǎn)者或者維護(hù)者按照平臺數(shù)據(jù)標(biāo)準(zhǔn)規(guī)范進(jìn)行數(shù)據(jù)服務(wù)的注冊和發(fā)布,并可在對應(yīng)的數(shù)據(jù)資源目錄中查看對應(yīng)的數(shù)據(jù)信息,管理數(shù)據(jù)服務(wù)資源。有數(shù)據(jù)使用需求的請求者則在發(fā)布平臺的服務(wù)資源管理模塊對已發(fā)布的數(shù)據(jù)服務(wù)進(jìn)行網(wǎng)絡(luò)調(diào)用,并在平臺中以集成應(yīng)用項目為單位進(jìn)行管理,每個集成應(yīng)用項目可包含多個調(diào)用的數(shù)據(jù)服務(wù)。
采用這種在服務(wù)發(fā)布平臺遵照統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù)管理方式,并利用可定制可擴(kuò)展的后臺服務(wù)配置技術(shù)構(gòu)建后臺運(yùn)維管理平臺,突破了分布式環(huán)境下海量、異構(gòu)空間數(shù)據(jù)的無縫集成與交換、多節(jié)點(diǎn)協(xié)同服務(wù)等技術(shù)瓶頸,可實現(xiàn)國家、省、市、區(qū)(縣)各級平臺之間橫向互聯(lián)、縱向互通的全方位的空間數(shù)據(jù)共享。
平臺設(shè)計的目標(biāo)是無需編程實現(xiàn)三維GIS 地圖數(shù)據(jù)高效發(fā)布,能夠兼容多源數(shù)據(jù)格式,快速響應(yīng)與其他平臺系統(tǒng)如業(yè)務(wù)一張圖系統(tǒng)、地質(zhì)大數(shù)據(jù)平臺的集成需求,具體包括數(shù)據(jù)發(fā)布、服務(wù)資源管理、系統(tǒng)管理3個功能模塊。
數(shù)據(jù)發(fā)布模塊是對平臺發(fā)布數(shù)據(jù)的綜合管理,如圖3 所示。數(shù)據(jù)發(fā)布前首先要建立工作空間,在此基礎(chǔ)上,通過數(shù)據(jù)源管理可以在工作空間內(nèi)添加數(shù)據(jù),并在對應(yīng)的各類圖層管理項中將添加進(jìn)數(shù)據(jù)源的數(shù)據(jù)發(fā)布成圖層并展示,即在不同的功能菜單,可以查看從接口獲取的對應(yīng)類型的數(shù)據(jù)列表,并對相關(guān)數(shù)據(jù)服務(wù)進(jìn)行查詢、查看、編輯、刪除、停止、圖層顯示等操作。
圖3 數(shù)據(jù)發(fā)布功能模塊
服務(wù)資源管理是對發(fā)布的數(shù)據(jù)服務(wù)進(jìn)行調(diào)用時的配置管理,這種管理以應(yīng)用項目為單位進(jìn)行,一個應(yīng)用項目可包含多條數(shù)據(jù),具體包括應(yīng)用管理和數(shù)據(jù)目錄管理(如圖4所示),可以進(jìn)行應(yīng)用項目對應(yīng)數(shù)據(jù)分類目錄的管理編輯。
圖4 服務(wù)資源管理功能模塊
系統(tǒng)管理是后臺對用戶權(quán)限、組織、角色等進(jìn)行管理,如圖5 所示,是保證系統(tǒng)平臺正常運(yùn)行的管理維護(hù)模塊。
圖5 系統(tǒng)管理功能模塊
多源三維數(shù)據(jù)服務(wù)發(fā)布平臺具有數(shù)據(jù)類型繁多、數(shù)據(jù)量大、對接數(shù)據(jù)平臺種類各異的特點(diǎn),并且要求平臺有效率性、可擴(kuò)展性、系統(tǒng)穩(wěn)定性、可維護(hù)性和質(zhì)量控制可靠性。采用SOA 技術(shù)進(jìn)行服務(wù)發(fā)布平臺的搭建,可以借助SOA 實現(xiàn)數(shù)據(jù)服務(wù)的靈活管理以及與其他數(shù)據(jù)平臺的快速集成,具有良好的應(yīng)用前景。