房3D可視化模炔基礎(chǔ)上,對(duì)機(jī)房中所有機(jī)柜和設(shè)備的運(yùn)行 告警狀態(tài)進(jìn)行實(shí)時(shí)顯示的模塊。用戶(hù)從用戶(hù)交互下達(dá)顯示實(shí)時(shí)告警命令后,實(shí)時(shí)告警模塊 通過(guò)從數(shù)據(jù)緩存模塊讀取數(shù)據(jù),并控制機(jī)房3D可視化模塊,在機(jī)柜和設(shè)備上方,分別顯示 一個(gè)標(biāo)記,來(lái)表示正常對(duì)象、警告的對(duì)象、緊急故障的對(duì)象,并且由數(shù)據(jù)緩存模塊提供實(shí)時(shí) 數(shù)據(jù)支持,從而實(shí)現(xiàn)實(shí)時(shí)告警的顯示。實(shí)時(shí)告警模塊效果(機(jī)房、機(jī)柜內(nèi))如圖6、7所示
[0103] 8、3D可視化拓?fù)涔芾砟K
[0104] 在本實(shí)施例中,如圖1所示,3D可視化拓?fù)涔芾砟K8包括拓?fù)渥詣?dòng)布局模塊、拓 撲可視化模塊、拓?fù)涔芾砟K、拓?fù)涔收夏M模塊和拓?fù)涔收戏赐蒲菽K。
[0105] 拓?fù)淇梢暬K,負(fù)責(zé)在用戶(hù)從用戶(hù)交互模塊進(jìn)入到某個(gè)機(jī)房的拓?fù)涔芾斫缑?后,從數(shù)據(jù)通信模塊讀取出某個(gè)機(jī)房的拓?fù)浣Y(jié)構(gòu)數(shù)據(jù),并調(diào)用拓?fù)渥詣?dòng)布局模塊得到各個(gè) 節(jié)點(diǎn)即機(jī)柜、設(shè)備以及端口的合理擺放位置,最后生成3D場(chǎng)景數(shù)據(jù)返回到用戶(hù)交互模塊并 顯示,從而完成機(jī)房的拓?fù)浣Y(jié)構(gòu)可視化,其效果如圖8所示。
[0106] 拓?fù)渥詣?dòng)布局模塊,是一個(gè)輸入為拓?fù)浣Y(jié)構(gòu)數(shù)據(jù),輸出為每個(gè)節(jié)點(diǎn)3D位置信息數(shù) 據(jù)的模塊。所述的拓?fù)渥詣?dòng)布局為:
[0107] (1)、在輸入拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)后,識(shí)別所有節(jié)點(diǎn)即即機(jī)柜、設(shè)備以及端口,并讀取它們 的父子關(guān)系,從而按照父子關(guān)系,把所有節(jié)點(diǎn)分層,在最底層即端口是輩分最低的節(jié)點(diǎn),也 就是葉子節(jié)點(diǎn),并規(guī)定這一層叫主層;
[0108] (2)、在確定了所有節(jié)點(diǎn)的層級(jí)后,再對(duì)每層中的節(jié)點(diǎn)進(jìn)行分組,即隸屬于同一個(gè) 父親的節(jié)點(diǎn)歸為一組,若某個(gè)節(jié)點(diǎn)有多個(gè)父節(jié)點(diǎn),則對(duì)指定排第一的父節(jié)點(diǎn)為主父節(jié)點(diǎn)并 歸為該組;
[0109] (3)、首先為主層組分配位置:首先根據(jù)將主層組的數(shù)將平面空間劃 分為X和Z方向上Group_Array行列的網(wǎng)格的棋盤(pán),再找出主層中節(jié)點(diǎn)數(shù)最多的組,其中:
[0111] 根據(jù)其節(jié)點(diǎn)數(shù)N_Node_Group確定棋盤(pán)中網(wǎng)格的寬度:
[0113] 其中,Node_Gap和Node_Width分別是主層組內(nèi)節(jié)點(diǎn)間安放間距和節(jié)點(diǎn)本身占據(jù) 的寬度,是預(yù)設(shè)好的,用戶(hù)可修改;
[0114] 在此基礎(chǔ)上,第k列,第1行組的起始坐標(biāo)可表示為:
[0115] Group_Pos(k, I) = <(k~l)*Group_ffidth, (1-1)*Group_ffidth>
[0116] 在確定了主層組的位置之后,主層內(nèi)某個(gè)組內(nèi),第i列,第j行節(jié)點(diǎn)坐標(biāo)可以表示 為:
[0117] Node_Pos (i, j) =< (i~l) *Node_Gap, (j-1) *Node_Gap >+Group_Pos
[0118] 其中Group_Pos表示節(jié)點(diǎn)所在組的起始坐標(biāo);
[0119] 所有節(jié)點(diǎn)的Y坐標(biāo),即是所在層的高度,可以統(tǒng)一表達(dá)為:
[0120] Node_Pos_Y = _ (level-1) *Level_Gap ;
[0121] 其中l(wèi)evel表示節(jié)點(diǎn)在第幾層,LevelGap為每層的距離間隔,是預(yù)設(shè)定好的值, 用戶(hù)也可編輯;
[0122] 至此,便完全確定了主層節(jié)點(diǎn)的絕對(duì)坐標(biāo),那么非主層節(jié)點(diǎn)的X和Z平面上的坐標(biāo) 可表示為其孩子組成的Group的坐標(biāo)的中心加上所在層的位置;若非主層節(jié)點(diǎn)沒(méi)有孩子, 則將位置分配至其兄弟節(jié)點(diǎn)旁。至此所有節(jié)點(diǎn)的位置都已分配完畢,完成了拓?fù)?D自動(dòng)布 局的一種實(shí)現(xiàn)方式。
[0123] 拓?fù)涔芾砟K,是在拓?fù)淇梢暬H不A(chǔ)上,實(shí)現(xiàn)了用戶(hù)可以對(duì)拓?fù)涔?jié)點(diǎn)直接的 鏈路進(jìn)行新建、改連接和刪除連接的操作的模塊。它通過(guò)提供給用戶(hù)交互模塊接口,讓用戶(hù) 可以操作拓?fù)涔?jié)點(diǎn)之間的連接,并控制拓?fù)淇梢暬K修改數(shù)據(jù),并同步至后臺(tái)服務(wù)模塊 和交互模塊,從而完成用戶(hù)對(duì)拓?fù)溥B接的管理。
[0124] 拓?fù)涔收夏M模塊,是在拓?fù)淇梢暬H不A(chǔ)上,實(shí)現(xiàn)了對(duì)拓?fù)涔收夏M并且顯 示的模塊。用戶(hù)從用戶(hù)交互模塊,選定了 1個(gè)或幾個(gè)需要模擬故障的邏輯節(jié)點(diǎn)后,下達(dá)拓?fù)?節(jié)點(diǎn)故障模擬命令,拓?fù)涔收夏M模塊收到命令后,會(huì)通過(guò)數(shù)據(jù)通信模塊向后臺(tái)服務(wù)模塊 查詢(xún)因?yàn)檫@些節(jié)點(diǎn)故障,會(huì)影響到的設(shè)備,并獲取設(shè)備列表,然后調(diào)用拓?fù)淇梢暬K,將 選中設(shè)備和受影響設(shè)備對(duì)象疊加上特定顏色,從而實(shí)現(xiàn)拓?fù)涔收系目梢暬M,其效果如 圖9所示。
[0125] 拓?fù)涔收戏囱菽K,是在拓?fù)淇梢暬H不A(chǔ)上,實(shí)現(xiàn)了已知拓?fù)涔收瞎?jié)點(diǎn),反推 故障源的模塊。在用戶(hù)從用戶(hù)交互模塊,選中了已經(jīng)故障節(jié)點(diǎn),并下達(dá)反推故障源命令后, 拓?fù)涔收戏囱菽K會(huì)通過(guò)數(shù)據(jù)通信模塊向后臺(tái)服務(wù)模塊請(qǐng)求可能的故障源節(jié)點(diǎn),并獲取列 表,再控制拓?fù)淇梢暬K,將可能的源節(jié)點(diǎn)涂色為指定顏色,從而實(shí)現(xiàn)拓?fù)涔收系目梢暬?反演,其效果如圖9所示。
[0126] 盡管上面對(duì)本發(fā)明說(shuō)明性的【具體實(shí)施方式】進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù) 人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于【具體實(shí)施方式】的范圍,對(duì)本技術(shù)領(lǐng)域的普通技 術(shù)人員來(lái)講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些 變化是顯而易見(jiàn)的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。
【主權(quán)項(xiàng)】
1. 一種基于B/S架構(gòu)的電網(wǎng)信息機(jī)房三維可視化管理平臺(tái),其特征在于,包括: 一用戶(hù)交互模塊,由登陸模塊、窗口管理模塊和用戶(hù)操作模塊組成; 登陸模塊負(fù)責(zé)攔截用戶(hù)請(qǐng)求并且要求驗(yàn)證用戶(hù)身份,在輸入用戶(hù)名和密碼后,通過(guò)數(shù) 據(jù)通信模塊連接至后臺(tái)服務(wù)模塊驗(yàn)證,驗(yàn)證通過(guò)后方可進(jìn)入管理平臺(tái); 窗口管理模塊負(fù)責(zé)維護(hù)一個(gè)主界面,并在主界面窗口中實(shí)現(xiàn)切換顯示四個(gè)3D可視化 管理模塊即3D可視化模型管理模塊、3D可視化模板管理模塊、3D可視化機(jī)房管理模塊和3D 可視化拓?fù)涔芾砟K的獨(dú)立界面,即四個(gè)3D可視化管理模塊的數(shù)據(jù)可視化部分托管于窗 口管理模塊;窗口管理模塊通過(guò)數(shù)據(jù)通信模塊與四個(gè)3D可視化管理模塊建立起連接,并實(shí) 時(shí)交互數(shù)據(jù),同時(shí)視它們?yōu)楠?dú)立子窗口,并分配獨(dú)立管理空間,再通過(guò)數(shù)據(jù)通信模塊直接調(diào) 用3D引擎模塊為以四個(gè)3D可視化管理模塊繪圖,以完成各個(gè)3D可視化管理模塊的獨(dú)立界 面管理和顯示工作; 用戶(hù)操作模塊則是用戶(hù)使用操作各個(gè)3D可視化管理模塊的接口模塊,以配合用戶(hù)完 成所需操作; 一數(shù)據(jù)通信模塊,由前臺(tái)內(nèi)部通信模塊和BlazeDS前后臺(tái)通信模塊組成; 前臺(tái)內(nèi)部通信模塊負(fù)責(zé)處理可視化管理平臺(tái)所有前臺(tái)模塊即用戶(hù)交互模塊和四個(gè)3D可視化管理模塊的通信事務(wù),包括前臺(tái)模塊之間的數(shù)據(jù)交互事務(wù)和前臺(tái)請(qǐng)求后臺(tái)數(shù)據(jù)的事 務(wù);前臺(tái)內(nèi)部通信模炔基于Flex事件驅(qū)動(dòng)編寫(xiě),構(gòu)建一個(gè)事件中心,從而處理來(lái)自各個(gè)前 臺(tái)模塊的通信請(qǐng)求,判斷是否需要后臺(tái)服務(wù)模塊的服務(wù),若不需要,則直接轉(zhuǎn)發(fā)事件至目標(biāo) 模塊,若需要后臺(tái)服務(wù)模塊的服務(wù),則調(diào)用BlazeDS前后臺(tái)通信模塊進(jìn)行通信; BlazeDS前后臺(tái)通信模塊負(fù)責(zé)處理來(lái)自前臺(tái)內(nèi)部通信模塊的通信請(qǐng)求,并轉(zhuǎn)化為BlazeDS遠(yuǎn)程調(diào)用,等待后臺(tái)服務(wù)模塊返回?cái)?shù)據(jù)后再將數(shù)據(jù)反饋給前臺(tái)內(nèi)部通信模塊進(jìn)行 分發(fā);該模炔基于BlazeDS技術(shù)編寫(xiě),增加了轉(zhuǎn)換功能,并規(guī)定了返回?cái)?shù)據(jù)的XML格式,以便 和后臺(tái)服務(wù)模塊正確通信; 一 3D引擎模塊,由3D引擎驅(qū)動(dòng)模塊、3D視角管理模塊和3D引擎服務(wù)接口模塊組成; 3D引擎驅(qū)動(dòng)模塊負(fù)責(zé)驅(qū)動(dòng)開(kāi)源3D引擎,將來(lái)自3D引擎服務(wù)接口模塊的命令轉(zhuǎn)換為3D 引擎的API并執(zhí)行,從而構(gòu)建3D場(chǎng)景,顯示機(jī)房; 3D視角管理模塊負(fù)責(zé)在3D引擎驅(qū)動(dòng)模炔基礎(chǔ)上,控制3D場(chǎng)景視角,給用戶(hù)提供視角控 制服務(wù); 3D引擎服務(wù)接口模塊則負(fù)責(zé)將3D引擎驅(qū)動(dòng)模塊提供的功能進(jìn)行封裝并形成接口,直 接提供給用戶(hù)交互模塊調(diào)用,為用戶(hù)交互模塊完成數(shù)據(jù)可視化任務(wù)服務(wù); 一后臺(tái)服務(wù)模塊,由命令轉(zhuǎn)換模塊、后臺(tái)數(shù)據(jù)緩存模塊、數(shù)據(jù)庫(kù)中間件和數(shù)據(jù)庫(kù)組成; 命令轉(zhuǎn)換模塊負(fù)責(zé)將接受到的BlazeDS遠(yuǎn)程調(diào)用(請(qǐng)求)轉(zhuǎn)換為數(shù)據(jù)庫(kù)操作和數(shù)據(jù)整 理操作,并請(qǐng)求后臺(tái)數(shù)據(jù)緩存模塊完成數(shù)據(jù)庫(kù)操作相關(guān)操作,然后將最終所有結(jié)果整理成 數(shù)據(jù)通信模塊指定的XML格式,返回給數(shù)據(jù)通信模塊,完成任務(wù)。 后臺(tái)數(shù)據(jù)緩存模塊負(fù)責(zé)執(zhí)行來(lái)自命令轉(zhuǎn)換模塊的數(shù)據(jù)庫(kù)相關(guān)操作,對(duì)于查詢(xún)操作,則 先檢查緩存區(qū)是否已經(jīng)有該結(jié)果,若有則立即返回;若是沒(méi)有命中,則將命名轉(zhuǎn)達(dá)給數(shù)據(jù)庫(kù) 中間件,并等待返回后,將數(shù)據(jù)返回并緩存;對(duì)于非查詢(xún)操作則直接傳達(dá)給數(shù)據(jù)庫(kù)中間件。 數(shù)據(jù)庫(kù)中間件由JDBC(JavaDataBaseConnectivity,即java數(shù)據(jù)庫(kù)連接),對(duì)數(shù)據(jù) 庫(kù)的基本操作進(jìn)行了簡(jiǎn)單封裝,保存了數(shù)據(jù)庫(kù)連接信息、數(shù)據(jù)庫(kù)配置等,滿足來(lái)自上層的操 作需求; 數(shù)據(jù)庫(kù)選用開(kāi)源的MySQL; 一 3D可視化模型管理模塊,由模型管理模塊、服務(wù)接口模塊組成; 模型管理模塊負(fù)責(zé)管理模型數(shù)據(jù),它通過(guò)數(shù)據(jù)通信模塊,從后臺(tái)服務(wù)模塊讀寫(xiě)數(shù)據(jù), 并將數(shù)據(jù)解析為3D可視化所需數(shù)據(jù)和模型屬性數(shù)據(jù),并與用戶(hù)交互模塊同步,從而實(shí)現(xiàn)模 型3可視化顯示服務(wù);在模型3D可視化顯示服務(wù)基礎(chǔ)上,實(shí)現(xiàn)新建模型、編輯模型、刪除模 型功能;這些功能的實(shí)現(xiàn),是通過(guò)處理來(lái)自數(shù)據(jù)通信模塊的用戶(hù)命令,將命令轉(zhuǎn)換為向?qū)В?啟動(dòng)向?qū)?,引?dǎo)用戶(hù)完成模型操作,在引導(dǎo)完成模型操作后,將數(shù)據(jù)和操作通過(guò)數(shù)據(jù)通信模 塊與后臺(tái)服務(wù)模塊同步,等待結(jié)果返回后再將結(jié)果通過(guò)數(shù)據(jù)通信模塊顯示在用戶(hù)交互模塊 上; 服務(wù)接口模塊則是為3D可視化模板管理模塊設(shè)計(jì)的服務(wù)模塊,它通過(guò)封裝模型數(shù)據(jù) 和模型列表,建立起模型索引,從而通過(guò)數(shù)據(jù)通信模塊為3D可視化模板管理模塊提供需要 的模型數(shù)據(jù)列表數(shù)據(jù)和模型詳細(xì)數(shù)據(jù); 一 3D可視化模板管理模塊,由模板管理模塊和服務(wù)接口模塊組成; 模板管理模塊提供的3D可視化模板顯示服務(wù)與3D可視化模型管理模塊相同;在3D可 視化模板顯示服務(wù)的基礎(chǔ)上,提供模板的新建、刪除和編