楊益文
(1. 上海市測繪院,上海 200063)
隨著云計算、人工智能、大數(shù)據(jù)和實體經(jīng)濟(jì)的深度融合,新型智慧城市建設(shè)的加速推進(jìn),基礎(chǔ)測繪的轉(zhuǎn)型升級,新型基礎(chǔ)測繪的快速發(fā)展和應(yīng)用[1-2],地理時空大數(shù)據(jù)呈指數(shù)級增長,催生了龐大的地理時空大數(shù)據(jù)、空間信息服務(wù)和智慧城市專題應(yīng)用建設(shè)需求。然而,目前的GIS管理定制平臺處于獨(dú)立分散狀態(tài),缺少統(tǒng)一高效的運(yùn)維、管理、定制等后臺支撐平臺,滿足不了智慧應(yīng)用建設(shè)對地理空間服務(wù)管理和地圖內(nèi)容定制的需求。隨著云計算分布式計算的普及使用,基于微服務(wù)架構(gòu)的軟件和服務(wù)開發(fā)日漸成為主流。它可將大型的單體應(yīng)用或服務(wù)按需拆分成多個微服務(wù),從而以快速靈活、輕便、松耦合的方式來構(gòu)建復(fù)雜的應(yīng)用[3]。本文將微服務(wù)架構(gòu)應(yīng)用于地理時空大數(shù)據(jù)平臺框架的搭建中,實現(xiàn)了地圖定制管理平臺設(shè)計。方案以企業(yè)級GIS平臺為基礎(chǔ),利用Spring Cloud微服務(wù)框架實現(xiàn)了微服務(wù)高內(nèi)聚、微服務(wù)間低耦合,便于擴(kuò)展,提升了平臺穩(wěn)定性、可用性、可靠性和可擴(kuò)展性。
本文以地理時空大數(shù)據(jù)為依托,設(shè)計并開發(fā)了基于ArcGIS、Spring Cloud、Vue 和上海測繪院SMap JS API等技術(shù)的地圖定制B/S管理平臺,實現(xiàn)了地圖實時定制授權(quán)和預(yù)覽。其主要設(shè)計思路為:
1)對組織內(nèi)的地理時空大數(shù)據(jù)按需按類型進(jìn)行資源匯聚,建立地理時空數(shù)據(jù)庫[4]。依托ArcGIS En?terprise 平臺,將地理時空大數(shù)據(jù)按標(biāo)準(zhǔn)規(guī)范發(fā)布為多種類型的地理信息服務(wù),如二三維地理信息服務(wù)、要素服務(wù)、地理處理服務(wù)、網(wǎng)絡(luò)分析服務(wù)和標(biāo)準(zhǔn)OGC等。
2)基于Sping Cloud 微服務(wù)框架,分析地圖定制管理平臺的業(yè)務(wù)流程,并拆分為多個微服務(wù),包括地圖服務(wù)管理、服務(wù)定制授權(quán)、地圖控件管理、地圖控件定制授權(quán)等。
3)基于Vue 前端框架技術(shù),結(jié)合后端微服務(wù),實現(xiàn)安全認(rèn)證、服務(wù)引擎管理、服務(wù)資源目錄、服務(wù)定制授權(quán)、地圖組件管理、組件定制授權(quán)、地圖代理配置、服務(wù)監(jiān)控等多組模塊應(yīng)用。
4)根據(jù)地理時空大數(shù)據(jù)應(yīng)用對地圖內(nèi)容定制的需求,進(jìn)行空間服務(wù)特性和地圖功能定制,以滿足用戶多維度、多場景、多功能的應(yīng)用需求。
本文采用的技術(shù)平臺主要包括ArcGIS Enter?prise、Spring Cloud、Vue 框架和SMap JS API。ArcGIS Enterprise 是Esri 公司推出的新一代服務(wù)器GIS 平臺,用戶可在自有或云環(huán)境中搭建平臺核心WebGIS 產(chǎn)品[5],提供了強(qiáng)大的空間數(shù)據(jù)服務(wù)管理、分析、制圖可視化與共享協(xié)作平臺能力。Spring Cloud是一種微服務(wù)架構(gòu)風(fēng)格,是一系列開源組件的有序集合。通過該框架設(shè)計理念,可將大型的單體應(yīng)用程序或服務(wù)按需按類型拆分為多個微服務(wù),服務(wù)之間采用簡單輕量級通信機(jī)制相互協(xié)作和配合,并可按需彈性部署運(yùn)行在獨(dú)立進(jìn)程中,為用戶提供最終價值[6]。Vue是一套用于構(gòu)建Web用戶界面的漸進(jìn)式Javascript框架,可簡單快速構(gòu)建前端界面,通過簡單的API提供高效數(shù)據(jù)綁定和靈活的組件系統(tǒng)[7]。SMap JS API 是由上海測繪院針對地理時空大數(shù)據(jù)平臺推出的可運(yùn)行在手機(jī)、平板、計算機(jī)等設(shè)備上的JS 地圖接口庫[8],可調(diào)用GIS 平臺地理時空空間資源服務(wù),提供二三維一體化地圖展示、空間分析、網(wǎng)絡(luò)分析、地名地址搜索等功能,為地理時空大數(shù)據(jù)應(yīng)用提供了更好的表達(dá)方式。
在信息安全、標(biāo)準(zhǔn)規(guī)范和運(yùn)行管理體系下[9],平臺利用已有的基礎(chǔ)設(shè)施進(jìn)行建設(shè),旨在滿足對地理空間大數(shù)據(jù)服務(wù)應(yīng)用的定制需求,建設(shè)具有安全認(rèn)證管理、地圖引擎管理、地圖服務(wù)管理、服務(wù)授權(quán)定制、地圖組件管理、組件授權(quán)定制管理、地圖配置管理和地圖代理管理等模塊的“松散耦合”平臺。平臺架構(gòu)總體包括基礎(chǔ)設(shè)施層、數(shù)據(jù)資源層、平臺服務(wù)層和智慧應(yīng)用層,如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
1)基礎(chǔ)設(shè)施層提供平臺運(yùn)行所需的軟硬件資源,包括服務(wù)器、存儲設(shè)備、高速寬帶、所需的運(yùn)行系統(tǒng)和支撐軟件,是整個平臺基礎(chǔ)運(yùn)行的支撐。
2)數(shù)據(jù)資源層匯聚了整個平臺的地理時空大數(shù)據(jù),通過對數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換、加載、存儲、組織和整理,使之滿足GIS 平臺建設(shè)的數(shù)據(jù)標(biāo)準(zhǔn)和規(guī)范體系;再通過建立地理時空信息二三維數(shù)據(jù)空間庫,對地理時空大數(shù)據(jù)進(jìn)行統(tǒng)一入庫、管理、存儲和更新。
3)平臺服務(wù)層?;跀?shù)據(jù)資源層的數(shù)據(jù)成果,結(jié)合專業(yè)GIS 平臺,將平臺已有數(shù)據(jù)成果轉(zhuǎn)換發(fā)布為標(biāo)準(zhǔn)地理信息Web服務(wù)[10],便于地理信息服務(wù)使用和共享。根據(jù)數(shù)據(jù)資源情況,GIS平臺提供了二三維地理信息服務(wù)、影像地圖服務(wù)、要素類服務(wù)、地理處理服務(wù)、網(wǎng)絡(luò)分析服務(wù)、地理編碼服務(wù)和OGC標(biāo)準(zhǔn)服務(wù)等功能?;谖⒎?wù)的地圖定制管理平臺可實現(xiàn)對GIS平臺已有服務(wù)的統(tǒng)一注冊、管理、認(rèn)證、定制和授權(quán),還可對地圖組件進(jìn)行統(tǒng)一管理、定制和授權(quán),并提供基于權(quán)限的地圖配置管理、地圖代理服務(wù)等。
4)智慧應(yīng)用層可根據(jù)微服務(wù)地圖定制管理平臺的地圖服務(wù)和地圖組件定制授權(quán)信息,快速構(gòu)建滿足面向行業(yè)地理時空大數(shù)據(jù)的智慧應(yīng)用。
平臺服務(wù)的調(diào)用統(tǒng)一通過微服務(wù)GIS GateWay 網(wǎng)關(guān)控制,需通過GIS Auth進(jìn)行微服務(wù)認(rèn)證,再進(jìn)行業(yè)務(wù)流程調(diào)用。平臺微服務(wù)業(yè)務(wù)主要包括空間服務(wù)(GIS Map Service)、地圖組件(GIS Map Widgets)、地圖引擎(GIS Server Engine)、地圖監(jiān)控(GIS Server Monitor)等。各微服務(wù)獨(dú)立開發(fā)、部署和維護(hù),并統(tǒng)一進(jìn)行更新。根據(jù)應(yīng)用性能需求,按需對微服務(wù)進(jìn)行彈性伸縮集群部署,以滿足用戶對地圖內(nèi)容定制化性能的需求。GIS微服務(wù)調(diào)用流程如圖2所示。
圖2 GIS微服務(wù)調(diào)用流程圖
目前微服務(wù)地圖定制管理平臺包括空間服務(wù)管理、地圖組件管理、地圖代理、地圖配置、地圖定制授權(quán)、定制內(nèi)容預(yù)覽等功能模塊。這些模塊可根據(jù)地理時空大數(shù)據(jù)的應(yīng)用需求進(jìn)行細(xì)粒度服務(wù)特性和組件功能的定制授權(quán)。
1)空間服務(wù)管理模塊包括GIS平臺引擎注冊管理和空間服務(wù)注冊等功能,可將GIS 平臺作為空間引擎注冊到平臺中,注冊為空間服務(wù)資源目錄,并實現(xiàn)服務(wù)運(yùn)行管理。
2)地圖組件管理模塊包括地圖組件注冊、定制和授權(quán)等功能,是平臺的核心模塊之一,可實現(xiàn)地圖可視化組件配置、定制和授權(quán),可將GIS 平臺組件按照平臺規(guī)范進(jìn)行注冊,也可按需進(jìn)行地圖組件開發(fā)定制,并注冊到平臺。根據(jù)用戶需求,組合空間服務(wù)進(jìn)行定制授權(quán),滿足地圖組件功能應(yīng)用需求。
3)地圖代理模塊為所有GIS平臺空間服務(wù)提供了統(tǒng)一的代理出口。用戶可通過代理服務(wù)的方式訪問地理空間服務(wù),實現(xiàn)所有GIS 平臺與用戶環(huán)境網(wǎng)絡(luò)的隔離,保證后臺GIS平臺的安全性。
4)地圖配置模塊負(fù)責(zé)統(tǒng)一平臺地圖配置管理,實現(xiàn)地圖API、地圖代理、地圖認(rèn)證類型和獲取方式的配置管理,并根據(jù)用戶授權(quán)賬號進(jìn)行配置授權(quán),以滿足地圖應(yīng)用配置需求。
5)地圖定制授權(quán)模塊根據(jù)注冊用戶對地圖服務(wù)和組件應(yīng)用需求進(jìn)行定制授權(quán),可對服務(wù)特性進(jìn)行定義,包括渲染方式、內(nèi)容控制、可見性、透明度、安全控制、彈窗與彈窗模板、標(biāo)注、子圖層、比例尺和三維模式地形信息等。模塊效果如圖3所示。
圖3 地圖定制授權(quán)模塊
6)定制內(nèi)容預(yù)覽模塊。根據(jù)定制授權(quán)的配置結(jié)果,可通過在線地圖模板實時查看預(yù)覽、修改、編輯和調(diào)整。模塊效果如圖4所示。
圖4 地圖定制實時預(yù)覽
1)微服務(wù)和地圖定制授權(quán)相結(jié)合。本文將微服務(wù)架構(gòu)設(shè)計理念、專業(yè)GIS 平臺與地圖定制管理平臺流程業(yè)務(wù)相結(jié)合,構(gòu)建了一個可靠穩(wěn)定、可擴(kuò)展、可移植、高內(nèi)聚低耦合的地圖定制管理平臺。
2)地圖定制和智慧應(yīng)用的開發(fā)。地圖定制可根據(jù)具體應(yīng)用對地理時空大數(shù)據(jù)的需求進(jìn)行內(nèi)容定制,還可對地圖交互組件進(jìn)行功能定制,大大降低了業(yè)務(wù)系統(tǒng)地圖內(nèi)容展示的工作量,簡化了業(yè)務(wù)系統(tǒng)的復(fù)雜度,使用戶專注業(yè)務(wù)本身,節(jié)省了時間,降低了項目成本。
本文設(shè)計了一套基于Spring Cloud、ArcGIS Enter?prise、Vue和SMap JS API 的地圖定制管理平臺,通過實現(xiàn)地圖內(nèi)容的定制授權(quán)管理滿足日益增長的對地理時空大數(shù)據(jù)應(yīng)用的定制需求。平臺采用微服務(wù)架構(gòu)設(shè)計理念,將復(fù)雜的地圖定制授權(quán)業(yè)務(wù)流程分解為多個職責(zé)單一獨(dú)立運(yùn)行的微服務(wù),并實現(xiàn)橫向彈性伸縮擴(kuò)展部署,保證了系統(tǒng)的可靠性、可用性和可移植性,為地理時空大數(shù)據(jù)大規(guī)模定制應(yīng)用需求提供了可靠的技術(shù)保障。