安沈昊,于榮歡
(航天工程大學復雜電子系統仿真重點實驗室,北京 101416)
天地一體化網絡橫跨多個物理域,由天基骨干網、天基接入網、地基主干網組成,并與互聯網和移動通信網互聯互通,既是國家未來重要的信息網絡基礎設施,也是軍隊未來遂行各類作戰任務的重要網絡信息支撐[1]。然而,目前雖然對一般復雜網絡的仿真研究已有相當長的時間,但對于各方面復雜性特征較為突出的天地一體化網絡來說[2],在如何對其網絡結構進行可視化展示與分析這一方面,還沒有一個完整的可視化指導框架,更缺乏相應的可視化方法。對此,該文以全方位、多角度展現天地一體化網絡結構為目標,提出了一套天地一體化網絡多視圖可視化框架,據此設計并實現了一個天地一體化網絡可視化原型系統SGINVisSys(Space-Ground Integrated Network Visualization System),該系統不僅支持天地一體化網絡仿真數據在不同尺度、不同視角下的可視化展示與分析,還允許用戶進行多種靈活、簡便的交互控制操作。
Web GL(Web Graphics Library),即網頁圖形庫,是一種基于Open GL 并能在Web 環境下繪制圖形的技術標準和協議[3],其應用架構如圖1 所示。在這種標準下,通過將Open GL 與編程語言JavaScript 相結合,對HTML5 中的Canvas 元素進行圖形渲染[4],達到良好的視覺效果。由于是通過瀏覽器直接進行圖形硬件加速,因此Web GL 技術具有速度快、效率高、免插件的特點[5],可通過簡單的操作實現復雜的數據可視化與場景渲染。

圖1 Web GL應用架構
目前Web GL 被廣泛應用于網站頁面復雜結構的構建,主要解決了以下問題:1)實現了環境的統一化,解決了因瀏覽器不同而帶來的諸多插件問題;2)實現了模式的標準化,通過Open GL 接口進行圖形渲染。得益于此,三維圖形的制作擺脫了對插件和平臺的依賴,現已得到了諸多瀏覽器的支持[6]。
Web GL 的底層驅動基于Open GL,這種低封裝度的API 具有容錯率低、開發難度大、計算復雜等特點,需要用戶掌握計算機圖形學相關知識[7]。為降低開發難度,使用Three.js 作為Web GL 的框架。Three.js 是一個基于JavaScript 語言的輕量級腳本庫,主要有以下特點:包含多個可直接調用的數學函數;無需復雜的計算機圖形學知識,僅靠若干組件就可構建3D 場景;能提供多樣化的3D 效果;加載的3D模型和運算對象支持多種格式。
Cesium.js是一個開源的、跨平臺的前端JavaScript庫,是一個基于JavaScript 語言的開發包[8],通過Web GL 技術來實現圖形的硬件加速,可以在B/S 架構下支持動態數據的三維可視化[9]和二維可視化,比如數字地球和二維地理地圖。開發者能夠利用它快速開發一款基于瀏覽器的數字地球應用,其性能和渲染質量能滿足大部分可視化需求[10]。通過Cesium.js 提供的JavaScript 接口進行圖形建模與渲染,可進行全球范圍的高精度影像與地形數據調度,支持對時變數據的可視化和多種場景模式,從而實現真正的二三維一體化[11]。
當前與天地一體化網絡有關的大部分可視化原型系統是在STK(Satellite Tool Kit)、ArcGIS 等專業軟件的基礎上進行二次開發來的[12],從用戶角度來看,這些軟件的專業性較強,需要用戶對航天領域內的相關專業知識有一定程度的掌握,其次是功能多樣、操作復雜,需要用戶前期花費大量時間熟悉軟件的使用,這些特點也導致了其受眾面局限于專業人員[13]。
除此之外,當前大部分網絡可視化系統的觀察視角與交互操作較為單一,既不能有效展示網絡結構動態變化情況,也不能展示同一網絡在不同視角下的布局情況。這些可視化原型系統大多數側重于各衛星系統的空間段部分,比如各衛星系統的網絡結構及衛星運行態勢模擬與可視化[14],對于地面段與用戶段涉及的較少,比如星地鏈路、地面站之間連接關系的可視化等。
結合上述問題,該文設計的天地一體化網絡可視化原型系統SGINVisSys 應達到以下目標:
1)以多視圖結構為可視化主體,全方位、多角度地展示天地一體化網絡的網絡結構。
2)重點展現天地一體化網絡的結構特征,比如多層特征、動態特征等。
3)能支持多種交互操作,允許用戶對可視化結果進行交互控制。
4)主要面向非專業人員,操作簡單且具有良好的跨平臺性與用戶友好性。
傳統的天基網絡可視化軟件多采用經典的2D+3D 雙視圖框架,分別從空間和平面兩個視角來展示網絡結構、節點運行軌跡等[15]。3D 視圖的優勢在于直觀,但是場景內模型過多或過大時會存在嚴重的信息遮擋。2D 視圖雖能避免一些視覺遮擋,但當網絡規模過大時,節點與邊的重疊、交叉會產生視覺上的干擾,不能較好地展示網絡的動態特性。另外,二者的結合并不能很好地展示網絡的拓撲結構和多層網絡之間的連接情況。
針對以上問題,該文對傳統雙視圖框架進行擴展,如圖2 所示,新增一個2.5D 視圖[16]和一個邏輯拓撲視圖,建立包括邏輯拓撲視圖、2D 視圖、2.5D 視圖、3D 視圖的天地一體化網絡多視圖可視化框架。邏輯拓撲視圖主要基于多力導引算法進行網絡拓撲結構的布局,基于2D、2.5D、3D 視圖的可視化首先通過Web GL 進行多維可視化建模,然后在Cesium 的基礎上進行二次開發以呈現多維視圖,通過Cesium 自帶的時間控制模塊展示其網絡結構動態變化情況[17],并采用統一的場景圖和WGS84 坐標系保證各視圖中顯示內容的一致性,在服務器端儲存高清衛星瓦片影像以構建真實地理圖像。多視圖框架中各個視圖一方面相輔相成、聯系密切,另一方面觀察角度與尺度均有不同,從而使信息的呈現更加豐富和充分。

圖2 多視圖可視化框架示意圖
當前常用的網絡架構模式主要由客戶機/服務器C/S(Client/Server)架構與瀏覽器/服務器B/S(Browser/Server)架構,基于C/S 架構的系統在客戶端必須對每一種指令集進行適配,并且對于同一指令集,不同的操作系統或版本也需對客戶端進行重新編譯適配。而基于B/S 架構只需在服務器端配置好服務[18],客戶端不管是采用商用平臺或是國產平臺只需瀏覽器支持即可。為便于維護管理和快速部署,SGINVisSys采用B/S 架構,如圖3 所示,分為瀏覽器端、服務器端、數據庫端三層。

圖3 可視化原型系統體系架構示意圖
底層數據庫端主要為基于MySQL 的天地一體化網絡結構數據庫與地理信息數據庫[19],其中網絡結構數據庫主要存儲天地一體化網絡的結構數據,例如節點、鏈路和網絡等各類數據表。地理信息數據庫用來存儲各種地理數據,比如數字高程模型數據和數字正射影像數據等。
服務器端接收由數據庫發出的各類網絡結構數據,并對數據進行處理與存儲,從而形成視圖,在瀏覽器端展示出來。當用戶在瀏覽器頁面上進行相應的交互操作之后,服務器端會根據產生的數據請求在數據庫進行查詢,之后對數據進行處理并生成視圖呈現至瀏覽器端。由于大部分數據的解析、處理與壓縮等操作都在服務器端進行,大大降低了瀏覽器端的運行壓力。
頂層瀏覽器端是整個可視化原型系統的核心,主要負責天地一體化網絡多視圖的展示與多種可視化交互操作,部分數據的解析與映射也在瀏覽器端完成。目前市面上主流的瀏覽器都具有良好的兼容性,其圖形處理能力也能滿足絕大多數用戶的可視化需求。
在完成可視化原型系統總體架構設計之后,對SGINVisSys 的功能結構進行設計,如圖4 所示,分為數據處理層、業務邏輯層和展示交互層。

圖4 原型系統功能結構示意圖
數據處理層主要是對可視化所需數據進行持久化處理,根據用戶需求為展示交互層提供數據準備,主要包含數據存儲模塊、數據管理模塊和參數計算模塊,具有相應權限的管理維護人員可對其進行控制與編輯。
業務邏輯層位于數據處理層和展示交互層之間,一是對數據進行分析處理,二是向展示交互層提供數據接口,主要包括拓撲布局模塊、動畫布局模塊、視圖生成模塊和數據分析模塊。
展示交互層主要負責將邏輯拓撲視圖、2D 視圖、2.5D 視圖和3D 視圖相互關聯,組成一個統一的多視圖可視化環境,并通過多種類型的交互控制操作輔助用戶觀察、分析可視化結果。主要包括多視圖展示模塊、可視化分析模塊、交互控制模塊和數據查詢模塊。
天地一體化網絡可視化原型系統實驗平臺及運行環境如下:
1)服務器端
操作系統:Windows 10/Linux;開發工具:D3、Cesium、Web Storm;服務器:Apache;數據庫管理軟件:MySQL Workbench。
2)瀏覽器端
瀏覽器:Firefox。
數據處理層各模塊實現方法與功能如下:
1)數據存儲模塊,一是依據天地一體化網絡結構數據的層次化特性,從節點數據、鏈路數據與網絡數據三個層面由下至上、以依次遞進的方式構建基于MySQL 的網絡結構數據庫,主要存儲天地一體化網絡的網絡結構、設備節點、鏈接鏈路、日志等各類數據表(如圖5 所示),二是在服務器端存儲高清衛星瓦片影像以及數字地球文件等各類信息[20],用來支持二維平面地圖以及三維數字地球等的可視化。

圖5 MySQL數據庫部分示意圖
2)數據管理模塊,主要依據開發出的數據管理子系統對天地一體化網絡的節點與鏈路數據進行管理。天地一體化網絡數據管理子系統采用C/S 架構,支持遠程對服務器中的數據庫數據進行操作,包括兩行式衛星軌道數據管理、軌道數據搜索、軌道數據編輯等模塊,支持兩行式衛星軌道數據管理、衛星分類樹數據管理和地面站數據等管理,圖6 所示為數據管理子系統操作頁面。

圖6 天地一體化網絡數據管理子系統操作頁面
3)參數計算模塊,負責計算節點、鏈路等的各種參數,包括節點度、節點實時位置和鏈路能見度分析等,為后續的網絡拓撲布局和動畫布局提供數據支撐。
業務邏輯層各模塊實現方法與功能如下:
1)拓撲布局模塊,從數據庫讀取天地一體化網絡結構數據之后,首先通過多力導引算法[21]對網絡拓撲結構進行布局,再結合層次聚類算法建立網絡多細節層級模型[22],根據顯示層級呈現不同層級的網絡拓撲結構。如圖7 所示,左側為某子網絡整體拓撲結構,右側為層次聚類之后高一層級的拓撲結構。

圖7 拓撲結構布局展示
2)動畫布局模塊,通過Cesium.js 庫讀取地理數據繪制數字地球并設置其運動狀態,根據節點數據與鏈路數據繪制節點運行軌跡,之后進行鏈路能見分析與節點相對運動分析,若計算結果滿足建鏈條件,采用節點-鏈接的方式構建網絡鏈路的可視化模型,鏈路兩端的節點根據類型用相應圖標表示,如圖8 所示為星間鏈路與星地鏈路的可視化模型。

圖8 鏈路模型示意圖
3)視圖生成模塊,根據拓撲布局模塊與動畫布局模塊的結果生成邏輯拓撲視圖、二維平面視圖、哥倫布投影視圖和三維數字地球視圖于前端瀏覽器顯示。
4)數據分析模塊,負責分析來自天地一體化網絡的各類數據,得到設備節點運行狀況、告警等各類信息,并將獲得的可用信息存儲在數據處理層。
展示交互層各模塊實現方法與功能如下:
1)多視圖展示模塊,負責在前端瀏覽器對可視化結果進行渲染和展示,從邏輯拓撲視圖、2D 視圖、2.5D 視圖和3D 視圖的角度全方位展現天地一體化網絡的結構與運行態勢。如圖9 所示,邏輯拓撲視圖以靜態的方式展示了被選中網絡某一時刻的拓撲結構,節點的顏色代表著節點類型。其余三個視圖則呈現了網絡動態演化的過程,節點之間的曲線表示其運行軌跡,直線表示節點之間的鏈路。四個視圖構成關聯視圖結構,在信息呈現方面具有較強的互補性,靜態視圖與動態視圖的結合形成了單視圖難以達到的信息呈現能力。

圖9 可視化分析界面部分示意圖
2)可視化分析模塊,主要基于邏輯拓撲視圖對網絡拓撲結構特征進行分析。在可視化分析界面中,左側區域展示了當前被選中網絡的整體拓撲結構;中間區域展示相應鄰域結構,提供連接模式分析及節點細節信息查詢,左側區域與中間區域截圖如圖9 所示;右側區域展示網絡層次結構,支持用戶對當前網絡層次結構細節進行查詢與分析;最下方左側區域顯示當前被鼠標選中節點的關鍵信息,右側區域并列展示了網絡鏈路的多維屬性,可據此對鏈路信息進行查詢與分析。
3)交互控制模塊,通過良好的交互與控制操作來增強可視化原型系統的用戶友好性[23]。如圖10-12 所示,用戶可以通過鼠標點擊可視化界面右上角的圖標在不同視圖之間自由切換,也可以通過左側信息列表的勾選框對場景中可視化實體是否顯示進行控制。SGINVisSys 是一個基于時間的實時動態可視化系統,可以通過界面下方的場景運行控制插件對當前可視化場景的運行進行控制。左側為場景運行控制插件,中間顯示的是當前的UTC 時間,右側為時間軸,可通過左側的三個按鈕或時間軸上的滑竿來控制當前場景的時間。

圖10 2D視圖
4)數據查詢模塊,用戶通過鼠標點擊與鍵盤輸入發出數據查詢請求,該模塊將數據查詢請求傳遞至后臺,通過與其他模塊的交互將符合條件的查詢結果返回至前端。

圖12 3D視圖
為進一步對該文可視化原型系統進行驗證,選取某部分測控網絡進行測試,最終可視化結果如圖9-12 所示。該網絡主要由若干衛星與地面站組成,分為天基網絡與地基網絡兩個子網,節點共有天基節點與地基節點兩種類型,二者之間部分節點存在鏈接關系,網絡鏈路共有星間鏈路、星地鏈路與地地鏈路三種類型。在拓撲視圖中可清楚地觀察到天基網絡中節點之間互有鏈接,地基網絡則呈現明顯的星型拓撲結構,兩個子網絡主要通過其中幾個關鍵節點鏈接。而2D 視圖、2.5D 視圖和3D 視圖能幫助用戶更直觀地觀察到節點的空間位置與網絡運行態勢,與邏輯拓撲視圖結合,有效避免了因視角受限而產生的可視化盲區,真正達到了全方位、多角度的可視化效果。
該文綜合相關復雜網絡理論研究成果和Web GL 等多種可視化技術,根據天地一體化網絡可視化方面的研究背景,設計并實現了一套天地一體化網絡可視化原型系統SGINVisSys,該系統整合了Cesium 的2D、2.5D 和3D 視圖的顯示功能,并增加了復雜網絡拓撲關系的可視化。首先給出了系統設計的總體思路,提出了一個多視圖可視化框架,詳細設計了SGINVisSys 的體系架構和功能結構,繼而分別闡述不同功能層下各模塊的功能與實現方法,最后選擇一個案例網絡對系統進行驗證,從可視化結果可看出,該系統通過多視圖框架系統能夠輔助用戶從不同方面、不同角度觀察并分析網絡結構,也可為天基網絡等其他類似網絡[24]的可視化系統的設計與實現提供思路。