本發明涉及GIS空間數據管理技術領域,具體地說是一種應用于電信領域的空間數據管理中間件及其實現方法。
背景技術:
地理信息系統(GIS)技術是近些年迅速發展起來的一門空間信息分析技術,在電信領域有著廣泛的應用。
空間數據管理中間件是一種介于GIS渲染引擎和數據庫管理系統之間的中間件技術,是GIS軟件平臺的核心組成部分,主要解決空間數據的交互問題。常見的空間數據中間件方案有Esri的ArcSDE、Sun的Oracle Spatial和超圖的SuperMap SDX+等。
隨著地理信息技術的蓬勃發展,其應用場景越發廣泛。空間數據的數據結構為了支撐上層應用變得越發復雜,需要支持的數據種類也越來越多。柵格數據、矢量數據、三維數據、網絡數據等多種類型的數據源支撐了GIS平臺多樣化的能力,如:
1、柵格數據分析:包括生成高程柵格、坡度柵格(可以通過高程柵格轉換)、距離柵格、密度柵格,重分類、柵格計算等具體功能。
2、矢量數據分析:包括基于空間位置的查詢、緩沖區分析、疊置分析、鄰近分析、泰森多邊形、空間統計等功能。
3、三維分析:包括創建柵格和TIN表面,對于表面積與體積、坡度坡向、可視性分析、表面長度等一系列表面分析,還有Arcscence三維可視化及二維轉三維的數據轉換等。
4、網絡分析:包括最佳路徑、最近設施、服務區、上下行、選址與配置等具體的可運用于解決生活中實際問題的功能。
上述列舉的空間分析功能只是GIS領域的冰山一角,其功能都依賴于底層數據模型的建模。可以說,空間數據底層模型是決定地理信息系統的適用范圍和執行效率的關鍵性要素。
然而,越發臃腫龐大的地理信息系統也帶來了顯著的問題,那就是數據復雜度與軟件復雜度的提升。以在GIS業界處于領先地位的Arcgis平臺為例,其提供的功能涵蓋了GIS領域的方方面面,而每個專業方向卻只使用很小一部分功能。經調研發現:在電信領域,90%的業務場景只依賴于GIS軟件平臺的極少部分功能,功能利用率不足整個平臺功能的5%。為了這5%的功能,運營商卻又不得不購買并部署整套GIS平臺軟件。
由此帶來的問題有三:
一、購買和部署龐大的GIS軟件帶來軟硬件的高額投入;
二、因系統復雜度高、項目工程龐大,導致軟件研發成本提高;
三、由于目前主流的商用和開源GIS平臺的底層模型都需要考慮支持各個專業方向的通用化場景,對于數據結構的完備性、嚴謹性、普適性要求很高。這也決定了其空間數據模型復雜度較高,在讀寫時更容易出現I/O瓶頸。為了解決I/O瓶頸,通常的做法只能通過分布式數據集群的方式進行數據切片,提高并發能力。但這又會進一步加劇問題一和問題二。
在目前主流商用和開源GIS平臺在處理靜態空間數據時,均有著良好的運行效率。但是對于動態變化的熱數據,讀寫瓶頸明顯。解決該問題的傳統思路是數據集群方案,雖可有效緩解讀寫瓶頸,但又帶來了新的IT復雜度提升與軟硬件成本增加問題。
基于以上現狀,本發明提出一種應用于電信領域的空間數據管理中間件及其實現方法,來解決上述問題。本發明基于電信領域的特點,發明了一套為電信領域量身打造的空間數據模型并為其封裝了空間數據管理中間件。因為是定向化建模,空間數據的數據結構得到大幅度的精簡,以提升效率。
技術實現要素:
本發明的技術任務是針對以上不足之處,提供一種應用于電信領域的空間數據管理中間件及其實現方法。
一種應用于電信領域的空間數據管理中間件,包括以下功能架構:
空間分析服務模塊,提供包括對資源的空間檢索、范圍查詢、緩沖區查詢的空間分析接口;
搜索服務模塊,基于搜索服務器,提供一個分布式的全文搜索引擎;
網絡分析服務模塊,提供最優路徑查詢、可能管網路徑分析、以及對深度優先、廣度優先、A+算法三種基礎算法的支持;
空間數據讀寫服務模塊,用于空間數據的讀寫與索引的自動維護;
高速緩存服務模塊,利用Redis內存數據庫緩存高速變更的數據,用于包括監控的實時性場景;
地圖渲染適配器,適配各GIS圖片渲染引擎提供動態地圖渲染服務。
所述中間件適配的數據庫類型包括Oracle、Postgresql、Neo4J和Redis數據庫。
一種應用于電信領域的空間數據管理中間件實現方法,其實現過程為:
首先對電信領域地理信息系統的使用特點進行分析;
然后設計一套空間數據數據結構;
在這套數據結構上封裝空間數據管理中間件,該管理中間件通過搜索服務模塊提供索引功能,提升空間數據讀寫和分析的效率。
分析后的電信領域地理信息系統的使用特點包括,
將空間對象分為二維平面上的點、線、線集合三種對象;
無線專業、傳輸外線專業的數據編輯需要動態渲染;
電信領域采用WGS84地球橢球坐標;
最小的線單元由兩端的點單元組成,不存在無明確端點的線單元;
最小的線單元長度為L取值范圍為0.5m<L<2000m;
復雜的線集合單元,可由最小線單元組合而成。
所述空間數據數據結構由以下元數據組成:
空間數據源定義表,定義數據源連接的數據庫信息,包括數據源名稱、數據庫類別、數據庫連接JSON、數據庫連接池大小;
空間數據源注冊表,確定數據源與要素類型的關系;
要素類定義表,為空間要素類的具體定義表,包括要素名稱、要素類型、要素類數據庫名稱和要素詳情JSON。
基于電信領域地理信息系統的使用特點,所述空間數據數據結構具體分為點資源空間數據結構、線資源空間數據結構、線集合空間數據結構。
所述點資源空間數據結構為二進制數據結構,每條點資源數據占用32字節,一字節為8bit;其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型,
字節7-8:希爾伯特曲線LEVEL值,取值為0-29;
字節9-10:希爾伯特曲線長度;
字節11-18:圖元標簽,用于標簽展示;
字節19-20:展示標識,作為樣式渲染標識;
字節21-22:級別標識,作為比例尺級別渲染標識;
字節23-24:版本標識,標識數據模型的版本信息;
字節25-32:保留空間,暫無特別作用。
所述線資源空間數據結構采用二進制數據結構,每條線資源數據占用32字節,每個字節為8bit,其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型;
字節7-14:圖元標簽,用于標簽展示;
字節15-16:展示標識,作為樣式渲染標識;
字節17-18:級別標識,作為比例尺級別渲染標識;
字節19-20:版本標識,標識數據模型的版本信息;
字節21-24:頭鏈接標識,線對象的頭端點標識;
字節25-28:尾鏈接標識,線對象的尾端點標識;
字節29-32:保留空間,暫無特別作用。
所述線集合空間數據結構為二進制數據結構,每條線資源數據占用24+4N個字節,N代表組成線集合的線的數量,每個字節為8bit,其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型;
字節7-14:圖元標簽,用于標簽展示;
字節15-16:展示標識,作為樣式渲染標識;
字節17-18:級別標識,作為比例尺級別渲染標識;
字節19-20:版本標識,標識數據模型的版本信息;
字節21-24:保留空間,暫無特別作用;
字節25-(24+4N): 線資源鏈表。
封裝中間件后,該中間件通過搜索服務模塊提供索引功能,具體為:
點類型數據的索引采用希爾伯特曲線算法,其希爾伯特曲線坐標為0到1,網格級別為0到29;
線與線集合類型數據的索引采用廣度優先算法,算法的初始值為希爾伯特曲線坐標區間。
本發明的一種應用于電信領域的空間數據管理中間件及其實現方法和現有技術相比,具有以下有益效果:
本發明以犧牲空間數據模型的完備性、嚴謹性、普適性為代價,采用了更簡潔的數據結構,使空間數據的讀取效率得到大幅提升;通常,空間原始空間數據與網絡拓撲數據的GIS原理差異很大,需要以兩種不同的格式進行存儲,這樣會增加數據同步和生成網絡的開銷,實時性較差,本發明結合電信領域的建模特點將兩種數據在建模層面合二為一,可大大提升數據網絡分析的效率。
本發明提供了一種不擴充數據集群而提升空間數據讀寫效率的解決方案,間接節省了軟硬件成本和開發成本,可帶來一定的經濟效益,通過模型的精簡、合理降低數據精度等手段,換取數據存儲效率的提升,實用性強,適用范圍廣泛,具有很好的推廣應用價值。
附圖說明
附圖1是中間件的實現示意圖。
附圖2是空間數據數據結構示意圖。
附圖3為點資源數據結構的二進制數據結構圖。
附圖4為線資源空間數據結構的二進制數據結構圖。
附圖5為線集合資源空間數據結構的二進制數據結構圖。
附圖6為點索引采用的希爾伯特曲線原理圖。
附圖7為希爾伯特的一維線示意圖。
附圖8為中間件在地理信息系統中所處的位置示意圖。
具體實施方式
下面結合附圖及具體實施例對本發明作進一步說明。
一種應用于電信領域的空間數據管理中間件,專門針對電信/通信行業的數據特點設計的一套空間數據數據結構并在這套結構基礎上封裝了空間數據管理中間件。中間件依靠獨特的建模和索引方法,可大大提升空間數據讀寫和分析的效率。
空間數據管理中間件基于Java開發,對電信領域地理信息系統的使用特點進行歸納,以底層精簡和功能定向化為目標,進行模型設計。
包括以下功能架構:
空間分析服務模塊,提供包括對資源的空間檢索、范圍查詢、緩沖區查詢的空間分析接口。
搜索服務模塊,即圖中的Elasticsearch服務,ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎。中間件集成了對ElasticSearch接口的支持
網絡分析服務模塊,提供最優路徑查詢、可能管網路徑分析、以及對深度優先、廣度優先、A+算法三種基礎算法的支持;
空間數據讀寫服務模塊,用于空間數據的讀寫與索引的自動維護;
高速緩存服務模塊,利用Redis內存數據庫緩存高速變更的數據,用于包括監控的實時性場景;
地圖渲染適配器,適配各GIS圖片渲染引擎提供動態地圖渲染服務。
所述中間件適配的數據庫類型包括Oracle、Postgresql、Neo4J和Redis數據庫。
一種應用于電信領域的空間數據管理中間件實現方法,通過一套為電信領域量身打造的空間數據模型并為其封裝了空間數據管理中間件來實現。因為是定向化建模,空間數據的數據結構得到大幅度的精簡,以提升效率。
本發明中的空間數據管理中間件,理論上可以適配任意GIS渲染組件,并不與特定平臺耦合,是電信領域GIS應用的良好補充方案。附圖8中為本發明的中間件在地理信息系統中所處的位置。
本發明是解決電信領域空間數據讀寫性能瓶頸問題的一種有效優化方案。通過直接在最底層數據結構上進行優化并為其封裝數據服務中間件,在不增加集群節點的情況下也可明顯提升個空間數據的讀寫效率。
其實現過程為:
首先對電信領域地理信息系統的使用特點進行分析;
然后設計一套空間數據數據結構;
在這套數據結構上封裝空間數據管理中間件,該管理中間件通過搜索服務模塊提供索引功能,提升空間數據讀寫和分析的效率。
分析后的電信領域地理信息系統的使用特點包括,
在電信領域,空間對象主要為二維平面上的點、線、線集合三種對象。可不考慮更復雜的空間模型。
在電信領域,無線專業、傳輸外線專業的數據編輯對實時性要求較高,需要動態渲染,無法使用切片技術。
電信領域采用WGS84地球橢球坐標,不需要考慮投影與坐標轉化的開銷
在電信領域,對實時變動的網絡資源進行深度優先、廣度優先和A+算法遍歷有著普遍的需求(傳統商用GIS引擎只支持靜態的網絡數據)
對于小比例尺下的地圖展示(小比例尺指視野更寬廣),只需要展示數據的大致輪廓,對空間準確度和精確數量的展示沒有太高要求,對數據實時性要求不高。允許使用定期緩存,允許使用更大程度的近似以提升查詢效率。
對于大比例尺下的地圖展示(大比例尺指視野更狹小),數據的最大精度誤差在0.5米內即可滿足使用要求
在電信領域巡檢、監視類需求對數據實時性非常高但展示數據量有限,數據管理中間件需支持內存數據庫
在電信領域,最小的線單元由兩端的點單元組成(如管道由兩端人井組成),不存在無明確端點的線單元。
在電信領域,最小的線單元(一般為管道、桿路資源)長度為L。0.5m<L<2000m,沒有例外。
在電信領域,更復雜的線集合單元(如光纜段鋪設在N條管道中),可由最小線單元組合而成,沒有例外。
所述空間數據數據結構如附圖2所示,其由以下元數據組成:
空間數據源定義表,定義數據源連接的數據庫信息,包括數據源名稱、數據庫類別、數據庫連接JSON、數據庫連接池大小;
空間數據源注冊表,確定數據源與要素類型的關系;
要素類定義表,為空間要素類的具體定義表,包括要素名稱、要素類型、要素類數據庫名稱和要素詳情JSON。
基于電信領域地理信息系統的使用特點,所述空間數據數據結構具體分為點資源空間數據結構、線資源空間數據結構、線集合空間數據結構,鑒于此,下面分三個實施例進行詳細描述。
實施例1:
如附圖3所示的為點資源數據結構的二進制數據結構。每條點資源數據占用32字節,圖中每個方框代表一字節(8bit);其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型,
字節7-8:希爾伯特曲線LEVEL值,取值為0-29;
字節9-10:希爾伯特曲線長度;
字節11-18:圖元標簽,用于標簽展示;
字節19-20:展示標識,作為樣式渲染標識;
字節21-22:級別標識,作為比例尺級別渲染標識;
字節23-24:版本標識,標識數據模型的版本信息;
字節25-32:保留空間,暫無特別作用。
實施例2:
如附圖4所示的為線資源空間數據結構采用二進制數據結構,每條線資源數據占用32字節,圖中每個方框代表一字節(8bit),其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型;
字節7-14:圖元標簽,用于標簽展示;
字節15-16:展示標識,作為樣式渲染標識;
字節17-18:級別標識,作為比例尺級別渲染標識;
字節19-20:版本標識,標識數據模型的版本信息;
字節21-24:頭鏈接標識,線對象的頭端點標識;
字節25-28:尾鏈接標識,線對象的尾端點標識;
字節29-32:保留空間,暫無特別作用。
實施例3:
如附圖5所示的為線集合空間數據結構為二進制數據結構,每條線資源數據占用24+4N個字節,N代表組成線集合的線的數量,圖中每個方框代表一字節(8bit),其中,
字節1:是否使用,0為廢棄,1為使用;
字節2:要素類型,1為點,2為線,3為線集合;
字節3-6:唯一標識,INTEGER類型;
字節7-14:圖元標簽,用于標簽展示;
字節15-16:展示標識,作為樣式渲染標識;
字節17-18:級別標識,作為比例尺級別渲染標識;
字節19-20:版本標識,標識數據模型的版本信息;
字節21-24:保留空間,暫無特別作用;
字節25-(24+4N): 線資源鏈表。
封裝中間件后,該中間件通過搜索服務模塊提供索引功能,具體為:
1)點類型數據的索引采用希爾伯特曲線算法,其希爾伯特曲線坐標為0到1,網格級別為0到29。
本發明的點索引采用的希爾伯特曲線原理圖如附圖6所示。
希爾伯特曲線是一種能填充滿一個平面正方形的分形曲線(空間填充曲線),由大衛?希爾伯特在1891年提出。由于它能填滿平面,它的豪斯多夫維是2。取它填充的正方形的邊長為1,第n步的希爾伯特曲線的長度是2n - 2-n。
如附圖6,7所示,空間中任意一點,可用希爾伯特的一維線的長度來表示。其重要的數學特性為“希爾伯特曲線坐標”(也可以叫做“希爾伯特曲線長度”,因為曲線是只有一個維度)和“切分級別”兩個概念。所謂的“希爾伯特曲線坐標”就是球面(地球)層次分解之后對空間區域的緊湊的表示,“希爾伯特曲線長度”的值越相近的在地理空間上也越相近(參考附圖7的橫坐標軸)。“切分級別”代表空間切分的比例,一個“希爾伯特曲線坐標”具有不同的“切分級別”以代表不同的數據精度,在地理信息系統中與比例尺的特性所對應。
基于上述數學特征,本發明用希爾伯特曲線作為點的空間索引算法基礎。
2)線與線集合類型數據的索引采用廣度優先算法,算法的初始值為希爾伯特曲線坐標區間。本發明的線、線集合索引采用的BFS原理圖如附圖8所示。
本發明根據電信領域功能特點精簡建模,單機讀寫并發量十分優秀;原始空間數據與網絡拓撲數據使用一套模型,提升了實時熱數據的網絡分析效率;基于精簡模型特點,本發明的空間索引生成算法空間占用率小,讀寫性能高。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現本發明。但是應當理解,本發明并不限于上述的具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現不同的技術方案。
除說明書所述的技術特征外,均為本專業技術人員的已知技術。