方 偉 徐 濤 閆文君 凌 青
(海軍航空大學(xué)信息融合研究所 山東 煙臺 264001)
近年來,分布式交互仿真[1-4]技術(shù)在模擬訓(xùn)練[5]、作戰(zhàn)實驗、裝備試驗等各個領(lǐng)域得到了廣泛的應(yīng)用,貫穿了項目需求分析、技術(shù)驗證、生產(chǎn)研制、效能評估等各個層次。同時,隨著信息技術(shù)的不斷發(fā)展,分布式仿真系統(tǒng)規(guī)模不斷擴展,運維管理[6-8]難度不斷增加,面向分布式仿真系統(tǒng),利用自動化工具對系統(tǒng)的運維過程進(jìn)行管理,是提升分布式系統(tǒng)運行效率的重要手段。運行監(jiān)控工具[9-11]作為運維管理工具的重要一環(huán),其核心是在嗅探分布式運行環(huán)境的基礎(chǔ)上,對各個仿真節(jié)點進(jìn)行人工/自動控制,自動捕獲仿真節(jié)點,為運維管理工具輔助決策提供支持。
運維管理系統(tǒng)由仿真部署工具、運行監(jiān)控工具、數(shù)據(jù)記錄工具和節(jié)點運行狀態(tài)分析工具等4個部分組成,在網(wǎng)絡(luò)通信中間件[12-13]的支持下,共同完成從分布式仿真系統(tǒng)環(huán)境準(zhǔn)備、運行到評價全過程的控制,其功能結(jié)構(gòu)如圖1所示。
圖1 運維管理系統(tǒng)功能結(jié)構(gòu)圖
仿真部署工具以運維管理庫中仿真構(gòu)件作為輸入,依據(jù)任務(wù)需求和仿真節(jié)點計算能力等,通過分布式環(huán)境下的各節(jié)點遠(yuǎn)程代理,將仿真構(gòu)件部署至各節(jié)點計算機,并形成分布仿真運行環(huán)境描述文件。
運行監(jiān)控工具以分布仿真運行環(huán)境描述文件為輸入,通過對分布式環(huán)境下各節(jié)點的嗅探,確定運行環(huán)境與部署環(huán)境間的一致性,并通過各類控制指令完成對各仿真節(jié)點的控制,并提供運行狀態(tài)數(shù)據(jù)為節(jié)點運行狀態(tài)分析工具提供支持。
數(shù)據(jù)記錄工具在運行階段持續(xù)對各仿真節(jié)點產(chǎn)生的數(shù)據(jù)進(jìn)行收集、整理與存儲,一方面為回放提供數(shù)據(jù)源支持,另一方面為節(jié)點運行狀態(tài)分析提供數(shù)據(jù)支持。
節(jié)點運行狀態(tài)分析工具以運行狀態(tài)數(shù)據(jù)、仿真數(shù)據(jù)和硬件資源數(shù)據(jù)為主要輸入,對分布式環(huán)境下計算資源分配情況進(jìn)行分析,并以時間序列為基礎(chǔ),對分布式環(huán)境下各節(jié)點故障情況進(jìn)行分析。
運行監(jiān)控工具基于TCP/IP網(wǎng)絡(luò)傳輸協(xié)議,通過在各仿真節(jié)點部署遠(yuǎn)程代理實現(xiàn)對分布式環(huán)境的運行與監(jiān)控,遠(yuǎn)程代理隨著系統(tǒng)的啟動自動運行,常駐于后臺,完成各類控制命令的執(zhí)行和信息采集。其功能如圖2所示。
圖2 運行監(jiān)控工具功能圖
1) 運行監(jiān)控工具:
該工具部署于服務(wù)器端,是分布式仿真環(huán)境的總控制端口,其具備節(jié)點嗅探、命令發(fā)送、數(shù)據(jù)匯集和輔助分析等功能。運行監(jiān)控工具運行界面如圖3所示。
圖3 運行監(jiān)控工具運行界面
(1) 節(jié)點嗅探:完成分布系統(tǒng)內(nèi)各仿真節(jié)點啟動情況、在線情況的監(jiān)視。
(2) 命令發(fā)送:依據(jù)人機界面操作,形成各類控制指令,通過網(wǎng)絡(luò)傳輸通道向仿真節(jié)點發(fā)送計算機管理、任務(wù)管理、狀態(tài)查詢等各類控制命令。
(3) 數(shù)據(jù)匯集:接收來自遠(yuǎn)程代理的反饋狀態(tài)數(shù)據(jù),并依據(jù)不同數(shù)據(jù)類型,傳遞給人機界面進(jìn)行顯示,同時對匯集的數(shù)據(jù)進(jìn)行存儲。
(4) 輔助分析:基于遠(yuǎn)程代理反饋的硬件實時性能數(shù)據(jù)、軟件運行狀態(tài)數(shù)據(jù)等,形成數(shù)據(jù)文檔及初步分析報告,后期為節(jié)點運行狀態(tài)分析提供支持,進(jìn)而優(yōu)化軟件性能,以及構(gòu)件部署。
2) 遠(yuǎn)程代理:
該軟件部署于各仿真節(jié)點計算機,通過被動和主動兩種模式完成對仿真節(jié)點的控制。被動模式主要是通過運行監(jiān)控工具發(fā)送的控制命令觸發(fā)其行為,完成任務(wù)啟動/關(guān)閉、計算機關(guān)機等各類行為;主動模式主要由遠(yuǎn)程代理自發(fā)執(zhí)行,其周期性對任務(wù)運行狀態(tài)、硬件資源使用等情況進(jìn)行收集,并通過網(wǎng)絡(luò)傳送給運行監(jiān)控工具。遠(yuǎn)程代理運行界面如圖4所示。
圖4 遠(yuǎn)程代理運行界面
運行監(jiān)控工具采用C/S架構(gòu)、組件化[14]思想進(jìn)行設(shè)計,各組件功能獨立,耦合度低,為運行監(jiān)控工具、遠(yuǎn)程代理等平臺軟件提供可靠服務(wù),主要由節(jié)點管理、網(wǎng)絡(luò)通信、資源管理、命令管理、狀態(tài)監(jiān)控、輔助分析和人機界面等組件組成,如圖5所示。
圖5 運行監(jiān)控工具結(jié)構(gòu)組成
由圖5可以看出,網(wǎng)絡(luò)通信組件和命令管理組件是運行監(jiān)控工具和遠(yuǎn)程代理的共性組件,共同完成了雙方的數(shù)據(jù)交互與命令處理。人機界面組件依據(jù)不同業(yè)務(wù)需求特點進(jìn)行設(shè)計,實現(xiàn)人機交互操作入口和數(shù)據(jù)的多形態(tài)表現(xiàn);節(jié)點管理組件實現(xiàn)服務(wù)器對各仿真節(jié)點的統(tǒng)一控制;資源管理組件完成對仿真節(jié)點計算機、任務(wù)、硬件使用等全面控制與管理;狀態(tài)監(jiān)控組件實現(xiàn)對各類資源狀態(tài)的實時監(jiān)視;輔助分析組件基于狀態(tài)監(jiān)視數(shù)據(jù)對各節(jié)點狀態(tài)數(shù)據(jù)進(jìn)行采集,形成初步分析報告。
節(jié)點管理組件主要對指定IP地址范圍內(nèi)的仿真節(jié)點進(jìn)行搜索,搜索到的IP地址即表征一個仿真節(jié)點的存在,并向運行監(jiān)控工具返回節(jié)點IP地址、端口號、主機名稱、MAC地址等基本信息,未返回狀態(tài)的IP地址經(jīng)一段時間延遲后認(rèn)為該IP地址無效,最終對搜索到的全部IP地址進(jìn)行信息分類并存儲于內(nèi)存。
考慮到遠(yuǎn)程代理啟動順序、網(wǎng)絡(luò)質(zhì)量等方面的原因可能導(dǎo)致部分仿真節(jié)點無法及時被運行監(jiān)控工具所捕獲,為確保節(jié)點搜索質(zhì)量,節(jié)點管理組件采用三種策略進(jìn)行節(jié)點搜索,如圖6所示。
圖6 節(jié)點搜索策略
(1) 自主搜索:由運行監(jiān)控工具觸發(fā),按照IP地址范圍采用廣播、點播相結(jié)合的方式向部署遠(yuǎn)程代理的仿真節(jié)點進(jìn)行搜索,并反饋搜索結(jié)果。
(2) 二次自主搜索:利用仿真部署工具明確的分布仿真運行環(huán)境IP地址范圍,與采用自主搜索獲取的結(jié)果進(jìn)行對比,明確未響應(yīng)節(jié)點,對該節(jié)點以點播的形式進(jìn)行指定次數(shù)的二次搜索,獲取仿真節(jié)點狀態(tài)。
(3) 主動反饋:仿真節(jié)點啟動后,在網(wǎng)絡(luò)通信組件和服務(wù)器描述文件的支持下,主動向運行監(jiān)控工具上報節(jié)點狀態(tài)信息。
仿真節(jié)點完成與運行監(jiān)控工具間的基礎(chǔ)連接后,仿真節(jié)點將對內(nèi)部服務(wù)器描述文件進(jìn)行修改,以重新建立服務(wù)器描述信息。
命令管理組件是運行監(jiān)控工具完成對各仿真節(jié)點全面控制的基礎(chǔ)指令。其基本流程是:運行監(jiān)控工具確定控制對象,確定命令類型,確定命令參數(shù),發(fā)送具體命令。遠(yuǎn)程代理接收控制命令,解析控制命令,執(zhí)行控制命令,回傳執(zhí)行結(jié)果。命令類型如表1所示。
表1 命令類型及其參數(shù)描述
命令管理模塊在控制字結(jié)構(gòu)上主要采用四段結(jié)構(gòu),即節(jié)點IP、控制命令、源路徑和目標(biāo)路徑。其中:節(jié)點IP為受控節(jié)點IP地址,空表示對全部節(jié)點進(jìn)行統(tǒng)一控制;控制命令即表1中明確的各類命令;源路徑為控制命令的具體參數(shù);目標(biāo)路徑為仿真節(jié)點處理所需的參數(shù)信息。
需要注意的是,啟動計算機命令主要通過網(wǎng)卡喚醒的方式實現(xiàn),其與遠(yuǎn)程代理無任何形式的交互。為阻斷任務(wù)系統(tǒng)與運行監(jiān)控工具間的耦合,降低任務(wù)系統(tǒng)開發(fā)難度,任務(wù)狀態(tài)查詢、任務(wù)運行、任務(wù)暫停等功能主要通過調(diào)用Windows底層服務(wù)實現(xiàn),其中,任務(wù)狀態(tài)的查詢可對任務(wù)的響應(yīng)性進(jìn)行判斷,并在桌面捕獲命令的支持下,對軟件運行狀態(tài)進(jìn)行分析。持續(xù)監(jiān)視命令能夠完成指定節(jié)點IP或全部仿真節(jié)點任務(wù)運行狀態(tài)、硬件資源使用信息、節(jié)點桌面等信息全面的監(jiān)視。
遠(yuǎn)程代理在接收到上述命令后,通過調(diào)用資源管理組件提供的服務(wù),完成相關(guān)信息的獲取,并根據(jù)信息類別,利用TCP/UDP等通信方式向運行監(jiān)控工具上報由命令字、狀態(tài)字和數(shù)據(jù)信息等內(nèi)容組成的各類結(jié)果。運行監(jiān)控工具通過對各類結(jié)果的接收、分類和記錄等處理過程,以圖、表等形式對信息內(nèi)容進(jìn)行顯示。
狀態(tài)監(jiān)控組件部署于遠(yuǎn)程代理端,其核心是對仿真節(jié)點任務(wù)運行狀態(tài)、硬件資源使用情況等信息進(jìn)行采集,并利用網(wǎng)絡(luò)通信組件完成上報。采集上報方式包括:自動化采集,該模式由預(yù)先設(shè)定的數(shù)據(jù)采集周期,遠(yuǎn)程代理自動對各類資源數(shù)據(jù)進(jìn)行采集,對狀態(tài)發(fā)生變化的數(shù)據(jù)進(jìn)行上報;應(yīng)答式采集,該模式主要由運行監(jiān)控工具觸發(fā),遠(yuǎn)程代理完成相應(yīng)任務(wù)。狀態(tài)監(jiān)控報告如表2所示。
表2 狀態(tài)監(jiān)控報告
輔助分析組件部署于運行監(jiān)控工具端,主要通過接收來自狀態(tài)監(jiān)控組件回傳的數(shù)據(jù),形成滿足節(jié)點運行狀態(tài)分析工具所需的數(shù)據(jù)集和輔助分析報告。
1) 分布環(huán)境運行數(shù)據(jù)集:分布環(huán)境運行數(shù)據(jù)集主要對來自遠(yuǎn)程代理的各任務(wù)運行狀態(tài)、硬件資源實時使用情況等數(shù)據(jù)采用標(biāo)準(zhǔn)的XML格式進(jìn)行分類存儲。其中任務(wù)運行狀態(tài)數(shù)據(jù)主要以每個任務(wù)為基礎(chǔ)記錄任務(wù)ID、名稱、內(nèi)存占用率、CPU占用率以及狀態(tài)(尤其是故障狀態(tài))等;硬件資源實時使用情況主要以每個節(jié)點計算機為基礎(chǔ)記錄CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)使用率等。
2) 輔助分析報告:輔助分析報告以分布環(huán)境運行數(shù)據(jù)集為基礎(chǔ),重點對任務(wù)運行狀況和負(fù)載均衡[15]等進(jìn)行初步分析,并以Word文檔的形式輸出報告內(nèi)容。其中,任務(wù)運行狀況重點采集任務(wù)執(zhí)行過程中出現(xiàn)故障、崩潰和負(fù)載率較高的時間點、狀態(tài)和回傳的桌面圖像,通過與運維管理系統(tǒng)中獲得的任務(wù)內(nèi)部交互數(shù)據(jù)時間點配合,檢查任務(wù)執(zhí)行在分布式環(huán)境中由于其他系統(tǒng)數(shù)據(jù)輸入導(dǎo)致任務(wù)失敗的原因;負(fù)載均衡重點采集節(jié)點計算機硬件資源實時使用狀況,結(jié)合任務(wù)執(zhí)行過程中采集到的運行在該節(jié)點計算機上的全部任務(wù)軟件對資源的使用情況等,從負(fù)載平衡的角度分析該節(jié)點計算機的負(fù)載能力以及任務(wù)部署建議,后可依據(jù)負(fù)載均衡分析報告內(nèi)容,結(jié)合仿真部署工具對資源進(jìn)行重新調(diào)整,達(dá)到分布運行環(huán)境的優(yōu)化。
綜上所述,運行監(jiān)控工具作為運維管理系統(tǒng)的組成部分具有以下特點:
1) 從分布式仿真系統(tǒng)的負(fù)載均衡分析的角度出發(fā),在運行監(jiān)控工具內(nèi)部設(shè)計了輔助分析功能,綜合利用節(jié)點計算機性能、任務(wù)執(zhí)行對計算機資源需求量等因素,對節(jié)點計算機負(fù)載情況進(jìn)行分析,提出任務(wù)部署建議,為優(yōu)化運行環(huán)境提供了支撐。
2) 從運行監(jiān)控工具與具體應(yīng)用無關(guān),對交互數(shù)據(jù)進(jìn)行分類,并封裝了網(wǎng)絡(luò)通信接口,確保了主從端數(shù)據(jù)的有效交互。
3) 采用組件化設(shè)計思想和標(biāo)準(zhǔn)的數(shù)據(jù)交互格式,圍繞運行監(jiān)控需求,通過對TCP/IP協(xié)議在網(wǎng)絡(luò)通信層和命令管理層的封裝,并利用一對多的數(shù)據(jù)通信方式,確保了主從端數(shù)據(jù)可靠、有效的交互。
4) 采用自主搜索、二次自主搜索和主動反饋等三種節(jié)點嗅探機制,確保了仿真節(jié)點的可靠管理。
5) 科學(xué)合理規(guī)劃運行監(jiān)控工具在運維管理系統(tǒng)中的功能定位,隔離工具與具體應(yīng)用關(guān)聯(lián),進(jìn)一步擴展了工具在模擬訓(xùn)練、作戰(zhàn)實驗、裝備試驗等各類分布式仿真系統(tǒng)中的應(yīng)用。