蘇 謨,劉 宇,王其樂(lè),魏景鋒,曹吉龍
1(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所有限公司,沈陽(yáng) 110168)2(中國(guó)科學(xué)院大學(xué),北京 100049)3(廣東科學(xué)技術(shù)職業(yè)學(xué)院,珠海 519090)4(遼寧省醫(yī)療器械檢驗(yàn)檢測(cè)院,沈陽(yáng)110000)5(中國(guó)醫(yī)科大學(xué)附屬第四醫(yī)院,沈陽(yáng)110032)
信息化戰(zhàn)略的提出使得各行各業(yè),乃至各個(gè)部門(mén)均有著不同的IT系統(tǒng),缺乏統(tǒng)一部署及規(guī)劃,加上各行業(yè)的差異及各部門(mén)業(yè)務(wù)邏輯的復(fù)雜性,IT架構(gòu)不透明的問(wèn)題也日趨突兀,導(dǎo)致運(yùn)行及維護(hù)工作的成本居高不下,對(duì)IT系統(tǒng)結(jié)構(gòu)關(guān)系的完全掌握也變成了一件難題.因此,IT系統(tǒng)結(jié)構(gòu)可視化理念應(yīng)運(yùn)而生.
本文針對(duì)IT系統(tǒng)結(jié)構(gòu)可視化中IT架構(gòu)不透明,IT結(jié)構(gòu)關(guān)系復(fù)雜,IT系統(tǒng)結(jié)構(gòu)可視化實(shí)時(shí)渲染幀率低的問(wèn)題,提出了IT系統(tǒng)結(jié)構(gòu)可視化模型,實(shí)現(xiàn)端到端的可視化管理,將可視化領(lǐng)域由物理設(shè)施拓展到系統(tǒng)、業(yè)務(wù)、流程等邏輯層次,使IT架構(gòu)內(nèi)部結(jié)構(gòu)關(guān)系清晰可見(jiàn).
針對(duì)IT系統(tǒng)結(jié)構(gòu)可視化中存在的復(fù)雜節(jié)點(diǎn)關(guān)系,如包含、發(fā)起、依賴、屬于等關(guān)系,單一的節(jié)點(diǎn)布局算法無(wú)法完全適用于其復(fù)雜的節(jié)點(diǎn)關(guān)系,根據(jù)節(jié)點(diǎn)關(guān)系的不同特點(diǎn)使用合適的節(jié)點(diǎn)布局算法,能夠解決IT系統(tǒng)結(jié)構(gòu)可視化的復(fù)雜結(jié)構(gòu)關(guān)系問(wèn)題.
布局算法是IT結(jié)構(gòu)可視化場(chǎng)景的重點(diǎn),采用合適的布局算法能夠幫助用戶清晰直觀的了解場(chǎng)景中的節(jié)點(diǎn)布局,了解場(chǎng)景局部與全局的狀態(tài),便于管理者對(duì)系統(tǒng)的整體評(píng)估.現(xiàn)有的布局算法主要包括直交布局算法、樹(shù)型布局算法、圖布局算法、層次性布局算法等[1,2,4].層次型布局算法也是使用較為廣泛的一種布局算法,層次感十分鮮明,但當(dāng)節(jié)點(diǎn)數(shù)量較大時(shí),層次型布局算法會(huì)出現(xiàn)不同層次的節(jié)點(diǎn)數(shù)量分配不均勻的現(xiàn)象,導(dǎo)致頭重腳輕.曹瑞斌[1]使用了螺旋式改造后的方法來(lái)實(shí)現(xiàn)IT系統(tǒng)結(jié)構(gòu)的層次布局算法,避免層次布局節(jié)點(diǎn)增長(zhǎng)過(guò)程中的頭重腳輕問(wèn)題.傳統(tǒng)三維可視化布局算法在概念格的表示上,存在復(fù)雜概念格結(jié)構(gòu)表示不清、圖形不美觀的問(wèn)題,沈夏炯[11]通過(guò)添加虛擬節(jié)點(diǎn)對(duì)布局算法進(jìn)行改進(jìn),使得概念格結(jié)構(gòu)明確、易讀.可視化研究中存在一些不確定數(shù)據(jù),使用概率圖布局的算法能夠很好可視化不確定結(jié)構(gòu),但基于概率圖布局的方法存在運(yùn)行時(shí)間過(guò)長(zhǎng)、圖布局不穩(wěn)定的問(wèn)題,陳炳坤[10]通過(guò)使用基于多層圖布局的算法,彌補(bǔ)了基于概率圖布局的不確定性網(wǎng)絡(luò)可視化方法的缺陷.
但上述提出的方法均是使用單一布局算法實(shí)現(xiàn)的系統(tǒng)結(jié)構(gòu),對(duì)于IT系統(tǒng)結(jié)構(gòu)關(guān)系復(fù)雜、關(guān)系種類多的問(wèn)題無(wú)法很好的適用.因此,本文使用混合型布局算法實(shí)現(xiàn)IT系統(tǒng)架構(gòu)的布局,又考慮到IT系統(tǒng)架構(gòu)實(shí)時(shí)渲染幀率低的問(wèn)題,使用基于GPU的方法來(lái)加速場(chǎng)景布局算法的實(shí)現(xiàn).通過(guò)使用GPU的并行編程,場(chǎng)景節(jié)點(diǎn)的組織效率得到加速,場(chǎng)景節(jié)點(diǎn)在變換時(shí),也可以迅速對(duì)場(chǎng)景結(jié)構(gòu)進(jìn)行重構(gòu),從而保證場(chǎng)景渲染的實(shí)時(shí)性.即使在面對(duì)具有復(fù)雜關(guān)系的IT結(jié)構(gòu)可視化場(chǎng)景節(jié)點(diǎn)時(shí),也能保證場(chǎng)景實(shí)時(shí)渲染的效率.
IT結(jié)構(gòu)可視化模型包括IT結(jié)構(gòu)的可視化邏輯模型,IT結(jié)構(gòu)可視化的轉(zhuǎn)換過(guò)程,以及IT結(jié)構(gòu)可視化實(shí)現(xiàn)架構(gòu).IT結(jié)構(gòu)可視化邏輯模型從業(yè)務(wù)角度對(duì)IT結(jié)構(gòu)進(jìn)行分析,IT結(jié)構(gòu)可視化的轉(zhuǎn)換過(guò)程將IT結(jié)構(gòu)可視化的邏輯模型轉(zhuǎn)換為IT結(jié)構(gòu)可視化架構(gòu),IT結(jié)構(gòu)可視化實(shí)現(xiàn)架構(gòu)對(duì)IT結(jié)構(gòu)的功能模塊、硬件支撐、外部接口進(jìn)行展示.
可視化邏輯模型能夠?qū)?fù)雜的業(yè)務(wù)模型轉(zhuǎn)化為用于多層級(jí)可視化可表述的模型,通過(guò)打破了各個(gè)專業(yè)領(lǐng)域和工具平臺(tái)之間的壁壘,將每個(gè)專業(yè)領(lǐng)域內(nèi)有價(jià)值的管理數(shù)據(jù)提取出來(lái)并精準(zhǔn)信息可視化呈現(xiàn)[5,6,9].通過(guò)使用A表示IT系統(tǒng),L表示系統(tǒng)內(nèi)的不同層級(jí),R表示系統(tǒng)內(nèi)節(jié)點(diǎn)關(guān)系及層級(jí)關(guān)系,E表示系統(tǒng)內(nèi)不同節(jié)點(diǎn),C表示系統(tǒng)內(nèi)不同的約束關(guān)系,對(duì)IT系統(tǒng)結(jié)構(gòu)化定義如下:
A={L,R,E,C},
L={業(yè)務(wù)應(yīng)用,系統(tǒng)平臺(tái),IT基礎(chǔ)設(shè)施,機(jī)房動(dòng)環(huán),…},
R={包含,依賴,運(yùn)行于,邏輯連接,屬于,返回,…},
E ={用戶終端,外部系統(tǒng),接入渠道,防火墻,web服務(wù)器,…},
C={布局策略,布局算法,可視化元素渲染樣式,連線規(guī)則,…}
本文對(duì)IT系統(tǒng)結(jié)構(gòu)可視化進(jìn)行分析,對(duì)IT結(jié)構(gòu)的可視化結(jié)構(gòu)分成四層邏輯結(jié)構(gòu),L1是業(yè)務(wù)應(yīng)用層,L2是系統(tǒng)平臺(tái)層,L3是IT基礎(chǔ)設(shè)施層,L4是機(jī)房動(dòng)環(huán)層,在L1內(nèi)有E1接入渠道,E2防火墻,E3負(fù)載均衡,E4加密機(jī),E5應(yīng)用系統(tǒng),L1內(nèi)部各元素節(jié)點(diǎn)之間是依賴的關(guān)系R1,L1與L2之間又有邏輯連接的關(guān)系R2,其面向業(yè)務(wù)的IT結(jié)構(gòu)可視化邏輯模型如圖1所示.
圖1 面向IT結(jié)構(gòu)的可視化邏輯模型Fig.1 Visualization logical model for IT structure
圖1從業(yè)務(wù)處理的角度,清晰的展現(xiàn)業(yè)務(wù)處理依賴的各項(xiàng)IT組件及其相關(guān)的關(guān)聯(lián)關(guān)系.當(dāng)對(duì)系統(tǒng)業(yè)務(wù)進(jìn)行拓展時(shí),可以通過(guò)直接增加系統(tǒng)層級(jí)L來(lái)拓展不同業(yè)務(wù),從而豐富IT系統(tǒng)可視化的邏輯模型.
在得到可視化邏輯模型后需要將其轉(zhuǎn)化成可實(shí)現(xiàn)的可視化架構(gòu),需要對(duì)數(shù)據(jù)進(jìn)行處理,與數(shù)據(jù)庫(kù)的交互獲取、處理數(shù)據(jù),通過(guò)數(shù)據(jù)結(jié)構(gòu)來(lái)拼接數(shù)據(jù)[4],便于與功能模塊進(jìn)行數(shù)據(jù)傳遞.數(shù)據(jù)結(jié)構(gòu)可定義如下:
D={層級(jí)屬性,節(jié)點(diǎn)屬性,關(guān)系屬性}
本文使用JSON字符串?dāng)?shù)據(jù)的格式依照數(shù)據(jù)結(jié)構(gòu)定義將其拼成JSON字符串用于數(shù)據(jù)傳遞及功能模塊的數(shù)據(jù)處理.其次對(duì)邏輯關(guān)系進(jìn)行抽象具體可視化分析,然后對(duì)其進(jìn)行可視化展示.通過(guò)對(duì)層級(jí)關(guān)系內(nèi)部的節(jié)點(diǎn)內(nèi)部結(jié)構(gòu)、局部關(guān)系的分析、故障分析和變更關(guān)系的分析,可以對(duì)IT系統(tǒng)結(jié)構(gòu)的功能結(jié)構(gòu)有具體把握,得到IT系統(tǒng)結(jié)構(gòu)內(nèi)部的不同約束關(guān)系C,包括C1系統(tǒng)內(nèi)層級(jí)之間的連線策略,C2層級(jí)內(nèi)部節(jié)點(diǎn)間的布局策略,以及C3布局算法等,然后按照C4可視化元素的渲染規(guī)則對(duì)節(jié)點(diǎn)布局展示、模塊關(guān)聯(lián)所屬展示、節(jié)點(diǎn)基本信息的展示,使得IT系統(tǒng)結(jié)構(gòu)可視化架構(gòu)的實(shí)現(xiàn)架構(gòu)清晰明朗,如圖2所示.
圖2 IT結(jié)構(gòu)可視化轉(zhuǎn)換過(guò)程Fig.2 Conversion process of IT structure visualization
通過(guò)數(shù)據(jù)處理、可視化分析、可視化展示階段的分析定義后,確定IT系統(tǒng)結(jié)構(gòu)的布局算法,故障定位算法,及IT系統(tǒng)可視化的展示方法,從而能夠得到IT結(jié)構(gòu)可視化的實(shí)現(xiàn)架構(gòu).
IT結(jié)構(gòu)可視化實(shí)現(xiàn)架構(gòu)可分為三維可視化模塊、硬件支撐層及外部接口三個(gè)部分,三維可視化模塊是IT結(jié)構(gòu)可視化技術(shù)的核心部分,實(shí)現(xiàn)IT系統(tǒng)結(jié)構(gòu)關(guān)系和運(yùn)行狀態(tài)的動(dòng)態(tài)呈現(xiàn)[7,8,12],實(shí)現(xiàn)故障信息的實(shí)時(shí)獲取,同時(shí)對(duì)故障進(jìn)行展示及對(duì)故障影響范圍進(jìn)行分析,包括業(yè)務(wù)關(guān)系可視化、應(yīng)用系統(tǒng)邏輯架構(gòu)可視化、應(yīng)用系統(tǒng)物理架構(gòu)可視化、IT基礎(chǔ)設(shè)施可視化、IT監(jiān)控工具、故障分析診斷可視化.硬件支撐層為三維可視化模塊提供底層支持,保證三維可視化模塊的正確運(yùn)行,包括引擎層、操作系統(tǒng)層、網(wǎng)絡(luò)傳輸層三個(gè)部分.外部接口為三維可視化模塊提供所需要的數(shù)據(jù)資源、及需要的API接口,包括數(shù)據(jù)資源、數(shù)據(jù)庫(kù)接口等.如圖3所示.
圖3 IT結(jié)構(gòu)可視化架構(gòu)Fig.3 IT structure visualization architecture
業(yè)務(wù)關(guān)系可視化實(shí)現(xiàn)的是交互路徑和功能處理過(guò)程的可視化,直觀對(duì)業(yè)務(wù)及業(yè)務(wù)之間的關(guān)聯(lián)關(guān)系、調(diào)用路徑進(jìn)行可視化.系統(tǒng)邏輯架構(gòu)的可視化通過(guò)形成應(yīng)用系統(tǒng)的全景視圖,提供一種以應(yīng)用系統(tǒng)為單位的清晰的管理視圖,實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)及應(yīng)用組件關(guān)聯(lián)關(guān)系的可視化.應(yīng)用系統(tǒng)物理架構(gòu)的可視化通過(guò)部署物理架構(gòu)提供物理架構(gòu)的可視化的清晰的管理視圖.IT基礎(chǔ)設(shè)施可視化實(shí)現(xiàn)的是從業(yè)務(wù)到系統(tǒng)應(yīng)用、流程及支撐的物理設(shè)備之間的關(guān)系的可視化.IT監(jiān)控工具的可視化最大程度上的利用了監(jiān)控?cái)?shù)據(jù)的價(jià)值,建立了一個(gè)統(tǒng)一的監(jiān)控信息界面.故障分析及根源診斷功能為故障事件的檢測(cè)提供了分析基礎(chǔ),保證了運(yùn)維團(tuán)隊(duì)的分析和解決問(wèn)題的效率.
IT結(jié)構(gòu)可視化場(chǎng)景除具有空間結(jié)構(gòu)關(guān)系外,還有業(yè)務(wù)關(guān)系、數(shù)據(jù)流關(guān)系等多種關(guān)系,具有關(guān)系多,結(jié)構(gòu)復(fù)雜的特點(diǎn);其次,由于IT結(jié)構(gòu)可視化場(chǎng)景需要向用戶提供360度的環(huán)繞查看效果,場(chǎng)景的縮放功能,因此IT系統(tǒng)結(jié)構(gòu)可視化場(chǎng)景對(duì)場(chǎng)景的渲染效率有著極高的要求,但現(xiàn)有的IT系統(tǒng)結(jié)構(gòu)可視化系統(tǒng)卻存在著場(chǎng)景渲染幀率低的問(wèn)題.針對(duì)上述問(wèn)題,本文提出使用GPU來(lái)實(shí)現(xiàn)IT結(jié)構(gòu)可視化場(chǎng)景的混合型布局算法,通過(guò)并行編程加速場(chǎng)景結(jié)構(gòu)的組織,保證了場(chǎng)景的實(shí)時(shí)渲染效果,加速了場(chǎng)景的渲染效率.
本文基于混合型布局算法實(shí)現(xiàn)IT結(jié)構(gòu)可視化場(chǎng)景的布局,針對(duì)系統(tǒng)應(yīng)用層、系統(tǒng)結(jié)構(gòu)層、上下游關(guān)系層使用不同的布局算法,通過(guò)使用GPU對(duì)各個(gè)層的布局算法進(jìn)行并行計(jì)算,加速器構(gòu)建效率,保證了渲染效率.
層次結(jié)構(gòu)內(nèi)部有明顯的功能層次特性,形成的拓?fù)浣Y(jié)構(gòu)的層次感鮮明,清晰直觀的展示節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系.應(yīng)用層滿足層次結(jié)構(gòu)的特點(diǎn),在一個(gè)層面上展示信息系統(tǒng)所有應(yīng)用節(jié)點(diǎn)間的布局狀態(tài),使用連線的方式展示應(yīng)用節(jié)點(diǎn)之間的關(guān)聯(lián)方式,令管理人員能夠?qū)ο到y(tǒng)的整體布局及關(guān)聯(lián)關(guān)系有總體的把握.使用層次布局算法展示應(yīng)用及應(yīng)用之間的關(guān)聯(lián)及流向關(guān)系.
算法描述:
步驟1.獲取數(shù)據(jù),從數(shù)據(jù)中得到所有應(yīng)用節(jié)點(diǎn)的信息.
步驟2.將應(yīng)用節(jié)點(diǎn)按照層級(jí)進(jìn)行相應(yīng)的劃分,以應(yīng)用之間的流向?yàn)闃?biāo)準(zhǔn),將其分為不同的層次.
步驟3.將上述信息輸入GPU端,然后對(duì)所有應(yīng)用節(jié)點(diǎn)進(jìn)行相應(yīng)的層級(jí)劃分,將不同的應(yīng)用節(jié)點(diǎn)劃分到其對(duì)應(yīng)的層級(jí).
步驟4.然后對(duì)節(jié)點(diǎn)關(guān)系連線,實(shí)現(xiàn)三維可視化展示.
具體流程如圖4所示.
圖4 層次布局算法流程Fig.4 Hierarchical layout algorithm flow
在CPU端獲取數(shù)據(jù)應(yīng)用節(jié)點(diǎn)的所有信息,然后按照應(yīng)用流向?qū)⑵鋭澐譃椴煌膶哟?,在GPU端對(duì)節(jié)點(diǎn)進(jìn)行所屬層級(jí)的判斷,在判斷完節(jié)點(diǎn)所屬層次后,使用螺旋式增長(zhǎng)的方式對(duì)節(jié)點(diǎn)進(jìn)行添加,即根據(jù)原有節(jié)點(diǎn)位置增加或減少一定間距的方式獲得,從而有效避免層次布局算法頭重腳輕的情形,然后對(duì)節(jié)點(diǎn)進(jìn)行連接,同時(shí)對(duì)其進(jìn)行三維展示,有效的提高布局算法的效率.
系統(tǒng)結(jié)構(gòu)層的結(jié)構(gòu)特點(diǎn)符合樹(shù)型結(jié)構(gòu)等級(jí)分明的拓?fù)浣Y(jié)構(gòu),通過(guò)展示應(yīng)用節(jié)點(diǎn)的內(nèi)部結(jié)構(gòu)及相關(guān)關(guān)系,以層次關(guān)系展示在垂直訪問(wèn)的系統(tǒng)結(jié)構(gòu)層中,連線的方式展示其相關(guān)關(guān)系,使用樹(shù)型布局算法對(duì)其進(jìn)行構(gòu)建,能夠迅速的體現(xiàn)單個(gè)應(yīng)用模型節(jié)點(diǎn)的內(nèi)部結(jié)構(gòu)所屬的關(guān)系.
算法描述:
步驟1.獲取應(yīng)用層節(jié)點(diǎn)及其對(duì)應(yīng)的系統(tǒng)節(jié)點(diǎn)數(shù)據(jù),將應(yīng)用層的節(jié)點(diǎn)做樹(shù)的根節(jié)點(diǎn),然后將其對(duì)應(yīng)的系統(tǒng)節(jié)點(diǎn)做葉子節(jié)點(diǎn).
步驟2.對(duì)系統(tǒng)層進(jìn)行劃分,將其劃分為系統(tǒng)層級(jí)、中間件層級(jí)、數(shù)據(jù)庫(kù)層級(jí)和網(wǎng)絡(luò)節(jié)點(diǎn)層級(jí).
步驟3.將上述數(shù)據(jù)輸入到GPU端,對(duì)所有節(jié)點(diǎn)進(jìn)行并行判斷其所對(duì)應(yīng)的系統(tǒng)層級(jí).
步驟4.如果系統(tǒng)包含中間件,則將對(duì)應(yīng)的中間件放到中間件層級(jí),對(duì)其余不包含中間件的節(jié)點(diǎn)進(jìn)行步驟5的判斷;否則不作處理.
步驟5.如果系統(tǒng)包含數(shù)據(jù)庫(kù),則將其對(duì)應(yīng)的數(shù)據(jù)庫(kù)放到數(shù)據(jù)庫(kù)層級(jí),對(duì)其余不包含數(shù)據(jù)庫(kù)的節(jié)點(diǎn)進(jìn)行步驟6的判斷;否則不作處理.
步驟6.將節(jié)點(diǎn)歸入網(wǎng)絡(luò)節(jié)點(diǎn)層級(jí).
步驟7.然后對(duì)布局內(nèi)的節(jié)點(diǎn)關(guān)系連線,實(shí)現(xiàn)三維可視化展示.
流程如圖5所示.
圖5 樹(shù)形布局算法流程Fig.5 Tree layout algorithm flow
樹(shù)形結(jié)構(gòu)的特點(diǎn)是一對(duì)多的拓?fù)浣Y(jié)構(gòu)關(guān)系,應(yīng)用層與系統(tǒng)層之間的節(jié)點(diǎn)對(duì)應(yīng)關(guān)系是一對(duì)多的關(guān)系,因此樹(shù)型布局結(jié)構(gòu)更適合于構(gòu)建系統(tǒng)結(jié)構(gòu)層,將應(yīng)用層節(jié)點(diǎn)視為樹(shù)的根節(jié)點(diǎn),然后查找該應(yīng)用節(jié)點(diǎn)所對(duì)應(yīng)的多個(gè)系統(tǒng)節(jié)點(diǎn),將其視為該根節(jié)點(diǎn)的子節(jié)點(diǎn),由于系統(tǒng)結(jié)構(gòu)層的節(jié)點(diǎn)可劃分為系統(tǒng)層級(jí)節(jié)點(diǎn),中間件層節(jié)點(diǎn),數(shù)據(jù)庫(kù)層節(jié)點(diǎn)和網(wǎng)絡(luò)層節(jié)點(diǎn),因此對(duì)于應(yīng)用層節(jié)點(diǎn)所對(duì)應(yīng)的系統(tǒng)節(jié)點(diǎn)進(jìn)行查找,若找到中間件層節(jié)點(diǎn),則將其劃分到中間件層節(jié)點(diǎn),接下來(lái)系統(tǒng)節(jié)點(diǎn)中不包含中間件層節(jié)點(diǎn)的節(jié)點(diǎn)查找其是否包含數(shù)據(jù)庫(kù)層節(jié)點(diǎn),如果不包含,則不做處理,最終將屬于網(wǎng)絡(luò)節(jié)點(diǎn)層的節(jié)點(diǎn)置于網(wǎng)絡(luò)節(jié)點(diǎn)層,最終得到樹(shù)形布局結(jié)構(gòu)的系統(tǒng)結(jié)構(gòu)層.
星型結(jié)構(gòu)是一個(gè)節(jié)點(diǎn)作為整個(gè)拓?fù)浣Y(jié)構(gòu)的中心,其余節(jié)點(diǎn)均與核心節(jié)點(diǎn)相連,直觀反映單個(gè)節(jié)點(diǎn)的所有關(guān)聯(lián)狀態(tài).應(yīng)用的上下游關(guān)系層主要用于展示單個(gè)應(yīng)用節(jié)點(diǎn)的上下聯(lián)關(guān)系,通過(guò)對(duì)單個(gè)節(jié)點(diǎn)的查看可以得到單個(gè)節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系,結(jié)構(gòu)簡(jiǎn)單,因此使用星型布局結(jié)構(gòu)更適用于實(shí)現(xiàn)該層結(jié)構(gòu).
算法描述:
步驟1.獲取節(jié)點(diǎn)以及相關(guān)的所有上聯(lián)節(jié)點(diǎn)和下聯(lián)節(jié)點(diǎn)數(shù)據(jù).
步驟2.然后將數(shù)據(jù)輸入到GPU端對(duì)其進(jìn)行并行判斷其層級(jí)關(guān)系.
步驟3.如果是該節(jié)點(diǎn)的上聯(lián)節(jié)點(diǎn),則將其歸為上聯(lián)節(jié)點(diǎn)布局;否則進(jìn)行步驟4.
步驟4.如果是該節(jié)點(diǎn)的下聯(lián)節(jié)點(diǎn),則將其歸為下聯(lián)節(jié)點(diǎn)布局.
步驟5.然后分別對(duì)上下聯(lián)布局內(nèi)的節(jié)點(diǎn)關(guān)系連線,實(shí)現(xiàn)三維可視化展示.
流程如圖6所示.
圖6 星型布局算法流程Fig.6 Star layout algorithm flow
使用GPU并行算法對(duì)某節(jié)點(diǎn)相連的其他所有節(jié)點(diǎn)的上、下聯(lián)關(guān)系進(jìn)行并行判斷,將該節(jié)點(diǎn)置為中心節(jié)點(diǎn),其他相連節(jié)點(diǎn)若屬于上聯(lián)節(jié)點(diǎn)時(shí),則將其置為上聯(lián)節(jié)點(diǎn)布局,屬于下聯(lián)節(jié)點(diǎn)時(shí),則置為下聯(lián)節(jié)點(diǎn),從而有效的加速了場(chǎng)景的布局算法,最終在GPU端對(duì)場(chǎng)景節(jié)點(diǎn)進(jìn)行連線與三維渲染展示.
對(duì)IT結(jié)構(gòu)可視化場(chǎng)景實(shí)時(shí)渲染效率的最明顯指標(biāo)便是響應(yīng)時(shí)間,響應(yīng)時(shí)間主要與數(shù)據(jù)提取速度、單個(gè)模型實(shí)例生成速度、場(chǎng)景中節(jié)點(diǎn)布局、連線算法有關(guān),本文采取檢測(cè)應(yīng)用層展示的反應(yīng)速度來(lái)體現(xiàn)本文提出的方法對(duì)IT結(jié)構(gòu)可視化場(chǎng)景實(shí)時(shí)渲染的改進(jìn)效果.實(shí)驗(yàn)的軟硬件條件如表1所示.
表1 軟硬件配置信息表Table 1 Software and hardware configuration information
圖7 層級(jí)屬性管理配置信息Fig.7 Hierarchical attribute management configuration information
對(duì)本文提出的混合型布局算法進(jìn)行設(shè)計(jì)實(shí)現(xiàn),首先是在CPU端獲取IT結(jié)構(gòu)可視化平臺(tái)應(yīng)用層的所需節(jié)點(diǎn)數(shù)據(jù),對(duì)節(jié)點(diǎn)數(shù)據(jù)按照相應(yīng)的數(shù)據(jù)結(jié)構(gòu)對(duì)其進(jìn)行處理,圖7為獲取的層級(jí)屬性信息包括編號(hào)、描述、層級(jí)名稱、層級(jí)角度、層級(jí)位置等屬性,如圖7所示.
然后對(duì)應(yīng)用層所具有的應(yīng)用層進(jìn)行層級(jí)劃分,將其劃分為業(yè)務(wù)層、支撐層、IT設(shè)施層,接著對(duì)具體的應(yīng)用層節(jié)點(diǎn)在GPU端并行的進(jìn)行所屬層級(jí)的劃分,實(shí)現(xiàn)節(jié)點(diǎn)的布局,最終實(shí)現(xiàn)節(jié)點(diǎn)的連線及三維效果的展示.圖8是未使用本文提出的布局算法的效果,圖9是使用本文提出的布局算法效果.
圖8 未使用本文算法的效果圖Fig.8 Simulation results without using the algorithm presented in this paper
通過(guò)兩個(gè)效果圖的對(duì)比,能夠明顯比較出通過(guò)使用本文提出的布局算法的IT結(jié)構(gòu)可視化效果,節(jié)點(diǎn)的布局更加均衡,節(jié)點(diǎn)更加清晰、美觀,在節(jié)點(diǎn)數(shù)量較大、關(guān)系數(shù)量較多的情況下,節(jié)點(diǎn)與節(jié)點(diǎn)之間的連線、層級(jí)之間的連線依舊能夠保持清晰可見(jiàn)、美觀.
圖9 使用本文算法的效果圖Fig.9 Simulation results using the algorithm presented in this paper
與傳統(tǒng)的僅基于CPU的算法,以及其他基于CPU和GPU實(shí)現(xiàn)的布局算法,如節(jié)點(diǎn)-鏈接法[3]相比,本文的算法的測(cè)試結(jié)果對(duì)比如表2所示.
表2 測(cè)試結(jié)果對(duì)比圖Table 2 Test results comparison
通過(guò)對(duì)表2的分析可看出,從系統(tǒng)響應(yīng)時(shí)間來(lái)看,在節(jié)點(diǎn)數(shù)量較少時(shí),三種方法均不會(huì)有太大的差異;但是,當(dāng)節(jié)點(diǎn)的數(shù)量變多時(shí),單一的只使用CPU的算法明顯不如使用基于GPU和CPU協(xié)同的布局算法,使用本文提出的方法與使用其他基于CPU與GPU協(xié)同的布局算法效果幾乎沒(méi)有差別;當(dāng)節(jié)點(diǎn)數(shù)量繼續(xù)增加時(shí),本論文提出的方法能夠保持更好的穩(wěn)定性,而使用文獻(xiàn)[2]的算法則在系統(tǒng)響應(yīng)時(shí)間,平均幀率,平均CPU占用率均表現(xiàn)略劣于本算法,體現(xiàn)出本算法的在節(jié)點(diǎn)數(shù)量龐大的情況下,也能保持較高的渲染幀率,并同時(shí)對(duì)系統(tǒng)做出快速響應(yīng).
本文針對(duì)IT系統(tǒng)結(jié)構(gòu)可視化中IT架構(gòu)不透明,IT結(jié)構(gòu)關(guān)系復(fù)雜,IT結(jié)構(gòu)可視化場(chǎng)景渲染幀率低等問(wèn)題,提出一種面向IT系統(tǒng)結(jié)構(gòu)可視化的實(shí)時(shí)渲染方法.提出一種IT結(jié)構(gòu)可視化模型,采用端到端的設(shè)計(jì)理念,對(duì)IT系統(tǒng)結(jié)構(gòu)由底層設(shè)施至上層系統(tǒng)、業(yè)務(wù)等邏輯層次的對(duì)象、元素、規(guī)則、關(guān)系進(jìn)行三維可視化的展示,從而使得IT架構(gòu)內(nèi)部清晰可見(jiàn).在此基礎(chǔ)上,本文使用混合型布局算法,針對(duì)IT結(jié)構(gòu)關(guān)系的不同特點(diǎn),適用合適的布局算法,解決IT結(jié)構(gòu)關(guān)系復(fù)雜多樣的難點(diǎn).同時(shí),使用GPU和CPU的協(xié)同方式實(shí)現(xiàn)上述布局算法,有效的提升場(chǎng)景渲染的幀率.