曹瑞斌, 廉東本
?
曹瑞斌1,2, 廉東本2
1(中國(guó)科學(xué)院大學(xué), 北京100049)2(中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所, 沈陽(yáng) 110168)
IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)是一個(gè)利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化管理模型, 以立體、仿真、實(shí)時(shí)互動(dòng)的方式, 呈現(xiàn)系統(tǒng)業(yè)務(wù)、系統(tǒng)、流程以及支撐的物理設(shè)備之間關(guān)系的Web系統(tǒng)[1]. 可以直觀的展示不同層次應(yīng)用節(jié)點(diǎn)的業(yè)務(wù)關(guān)系、應(yīng)用與組件之間所屬關(guān)系、邏輯組件與物理實(shí)體的對(duì)應(yīng)關(guān)系、應(yīng)用業(yè)務(wù)流向關(guān)系、系統(tǒng)監(jiān)控信息和按條件顯示拓?fù)涞? 并且支持針對(duì)某一節(jié)點(diǎn)發(fā)生故障的定位及影響分析、故障回溯功能. 可視化系統(tǒng)數(shù)據(jù)來(lái)源于配置管理模塊、后端使用Struct2+Hibernate4+Spring3技術(shù), 前端可視化模塊使用Unity3D引擎. 整個(gè)可視化系統(tǒng)具有使用方便、擴(kuò)展性好、面向服務(wù)、支持配置化、數(shù)據(jù)呈現(xiàn)直觀等特性.
系統(tǒng)結(jié)構(gòu)關(guān)系; 可視化管理模型; 三維可視化技術(shù); 面向服務(wù); Web系統(tǒng)
系統(tǒng)結(jié)構(gòu)關(guān)系是指系統(tǒng)內(nèi)部各組成要素之間的相互聯(lián)系、相互作用的方式或秩序, 即各要素在時(shí)間或空間上排列和組合的具體形式[2]. IT系統(tǒng)結(jié)構(gòu)關(guān)系表現(xiàn)為子系統(tǒng)之間的面向業(yè)務(wù)的協(xié)作關(guān)系、系統(tǒng)與各要素之間的組成關(guān)系、各要素之間的相互聯(lián)系與相互作用. IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)致力于IT系統(tǒng)結(jié)構(gòu)關(guān)系的可視化, 對(duì)系統(tǒng)管理者對(duì)系統(tǒng)的全面認(rèn)知具有重大意義.
隨著我國(guó)提出的信息化戰(zhàn)略的逐步實(shí)施, 我國(guó)企業(yè)的信息化水平不斷提高, 逐步建立了各種IT系統(tǒng), 各系統(tǒng)之間關(guān)系錯(cuò)綜復(fù)雜, 對(duì)系統(tǒng)管理者維護(hù)系統(tǒng)提出了巨大的挑戰(zhàn). 當(dāng)前國(guó)內(nèi)外大多數(shù)呈現(xiàn)系統(tǒng)結(jié)構(gòu)的方式是以文檔的方式來(lái)記錄系統(tǒng)結(jié)構(gòu)關(guān)系, 以人為的方式查看、分析、判斷系統(tǒng)應(yīng)用之間的關(guān)系, 不能實(shí)時(shí)監(jiān)控系統(tǒng)業(yè)務(wù)負(fù)載量, 不能準(zhǔn)確的定位故障, 不能快速地分析故障對(duì)其它組成要素的影響程度, 而且人力成本高, 效率低[3]. 鑒于此, 本文設(shè)計(jì)了IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng). 針對(duì)IT系統(tǒng)結(jié)構(gòu)關(guān)系提出利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化運(yùn)維管理模型, 能夠?qū)崟r(shí)、準(zhǔn)確地呈現(xiàn)IT系統(tǒng)結(jié)構(gòu)關(guān)系及監(jiān)控系統(tǒng)業(yè)務(wù)[4].
IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)具有重要應(yīng)用意義, 首先, 該系統(tǒng)構(gòu)建了業(yè)務(wù)至IT設(shè)施的可視化管理模型, 為系統(tǒng)管理者提供了便利. 其次, 該系統(tǒng)將可視化技術(shù)應(yīng)用于結(jié)構(gòu)關(guān)系呈現(xiàn)領(lǐng)域, 對(duì)可視化應(yīng)用具有研究?jī)r(jià)值. 最后對(duì)于該系統(tǒng)運(yùn)用層次信息可視化技術(shù)直觀的呈現(xiàn)系統(tǒng)結(jié)構(gòu), 提供故障影響分析, 故障物理定位, 監(jiān)控系統(tǒng)業(yè)務(wù), 并且具有可拓展性的優(yōu)點(diǎn), 對(duì)今后的系統(tǒng)結(jié)構(gòu)關(guān)系分析應(yīng)用具有重大意義[4].
2.1 可視化系統(tǒng)功能介紹
系統(tǒng)結(jié)構(gòu)關(guān)系分析系統(tǒng)主要分為系統(tǒng)管理、配置管理、IT應(yīng)用可視化三大模塊, 如圖1所示.
圖1 系統(tǒng)功能圖
(1) 系統(tǒng)管理
系統(tǒng)管理模塊負(fù)責(zé)管理系統(tǒng)用戶、角色、資源的分配與管理; 用戶分為系統(tǒng)管理員(root)和普通用戶(游客)兩類: 系統(tǒng)管理可以管理所有資源, 普通用戶可以可視化系統(tǒng)資源, 但是不能作增刪改操作, 對(duì)系統(tǒng)起到保護(hù)的作用.
(2) 配置管理
配置管理模塊提供系統(tǒng)輸入和配置功能, 在錄入方面: 本系統(tǒng)采用智能方式, 利用相關(guān)機(jī)器學(xué)習(xí)領(lǐng)域的算法自動(dòng)識(shí)別系統(tǒng)結(jié)構(gòu)并錄入數(shù)據(jù)庫(kù), 但為了整合用戶原有IT系統(tǒng)的目的, 也提供了手動(dòng)錄入, 文本導(dǎo)入, 圖形編輯錄入等常見(jiàn)功能. 配置方面: 本系統(tǒng)可以自由配置樣式, 配置顯示方案.
(3) IT應(yīng)用可視化
IT應(yīng)用可視化模塊是本系統(tǒng)的核心模塊, 它提供了一個(gè)利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化管理模型. 它可以從邏輯到物理兩方面呈現(xiàn)IT系統(tǒng)的運(yùn)行支持結(jié)構(gòu), 可以監(jiān)控業(yè)務(wù)動(dòng)態(tài), 支持故障影響分析, 支持故障回溯; 它清晰全面的為系統(tǒng)管理者提供了IT系統(tǒng)邏輯結(jié)構(gòu)地圖, 使得系統(tǒng)管理者可以實(shí)時(shí)監(jiān)控業(yè)務(wù), 全面了解系統(tǒng), 并最終為決策作指導(dǎo).
2.2 實(shí)施方案
2.2.1 系統(tǒng)數(shù)據(jù)交互過(guò)程
本系統(tǒng)采用Struct2+Hibernate4+Spring3(SSH)框架搭建后臺(tái)服務(wù), 利用Unity3D引擎進(jìn)行可視化展示, 以Web方式提供與用戶的交互界面. 其交互過(guò)程如圖2所示.
圖2 交互過(guò)程
圖2中數(shù)字說(shuō)明如下:
(1) 1-2
為一般的Web交互過(guò)程, 利用Http協(xié)議完成瀏覽器與服務(wù)器的交互. 主要功能為實(shí)現(xiàn)用戶系統(tǒng)管理與配置管理模塊的交互過(guò)程.
(2) 3
利用Unity3D提供的與JavaScript接口完成IT應(yīng)用可視化模塊的數(shù)據(jù)調(diào)用.
(3) 4
利用Ajax異步根據(jù)Unity3D所需請(qǐng)求服務(wù)器數(shù)據(jù), 同時(shí)也是Web異步請(qǐng)求數(shù)據(jù)接口. 此處兩個(gè)接口有點(diǎn)耦合, 但是實(shí)現(xiàn)簡(jiǎn)單.
(4) 5-6
利用Hibernate4實(shí)現(xiàn)與數(shù)據(jù)庫(kù)交互. 此處主要交互一些相對(duì)固定的數(shù)據(jù)(例如節(jié)點(diǎn)要素名稱, 負(fù)責(zé)人等).
(5) 7
封裝服務(wù)器與Unity3D的JavaScript交互接口(SendMessage()函數(shù)), 利用Json數(shù)據(jù)格式進(jìn)行交互.
(6) 8-9
對(duì)于故障、監(jiān)控信息等實(shí)時(shí)數(shù)據(jù)通過(guò)調(diào)用WebService獲取.
本系統(tǒng)將數(shù)據(jù)分為三類: 實(shí)時(shí)數(shù)據(jù), 常更改數(shù)據(jù), 不常更改數(shù)據(jù). 實(shí)時(shí)數(shù)據(jù)利用實(shí)時(shí)調(diào)用WebService獲取, 常更改數(shù)據(jù)封裝到Unity3D運(yùn)行環(huán)境中, 不常更改數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中, 從而極大的提高了數(shù)據(jù)獲取速度.
2.2.2 系統(tǒng)架構(gòu)
本系統(tǒng)采用模型(model)+視圖(view)+控制器(controller) (簡(jiǎn)稱MVC)模式, 具有簡(jiǎn)潔, 耦合度低的特點(diǎn). 其系統(tǒng)架構(gòu)如圖3所示.
本系統(tǒng)架構(gòu)借助MVC模式的優(yōu)點(diǎn), 完成組件之間的解耦, 可以很好的進(jìn)行拓展, 很貼切的面向服務(wù)進(jìn)行開(kāi)發(fā).
3.1 關(guān)鍵技術(shù)點(diǎn)
本系統(tǒng)使用J2EE開(kāi)發(fā), 中間整合Unity3D進(jìn)行三維呈現(xiàn). 整個(gè)系統(tǒng)的難點(diǎn)分為三部分:
(1) Unity3D與JavaScript之間數(shù)據(jù)交互接口;
(2) 結(jié)構(gòu)拓?fù)洳季炙惴ǖ脑O(shè)計(jì)和實(shí)現(xiàn);
(3) 布局節(jié)點(diǎn)動(dòng)態(tài)調(diào)整功能的實(shí)現(xiàn).
3.1.1 Unity3D與JavaScript之間數(shù)據(jù)交互接口
(1) Unity3D調(diào)用JavaScript
Unity3D引擎支持JavaScript, 在引擎內(nèi)部實(shí)現(xiàn)集成了調(diào)用JavaScript系統(tǒng)函數(shù)Application.ExternalCall來(lái)交互數(shù)據(jù).
(2) JavaScript調(diào)用Unity3D
JavaScript調(diào)用Unity的數(shù)據(jù)內(nèi)容采用封裝的SendMessage()函數(shù), 該函數(shù)封裝了Unity3D的相關(guān)對(duì)象UnityObject2調(diào)用, UnityObject2類提供了getUnity()函數(shù)提供支持.
通過(guò)Unity3D與JavaScript之間的數(shù)據(jù)交互接口, 使得JavaScript為Unity3D提供運(yùn)行環(huán)境及數(shù)據(jù)提供功能, Unity3D負(fù)責(zé)三維顯示功能, 從而使得兩部分功能明確, 耦合度降低, 利于系統(tǒng)維護(hù).
3.1.2 結(jié)構(gòu)拓?fù)洳季炙惴ǖ脑O(shè)計(jì)和實(shí)現(xiàn)
現(xiàn)有的布局算法主要包括直交布局算法、樹(shù)型布局算法、射線型布局算法、層次性布局算法和混合型布局算法等[5]. 本系統(tǒng)采用層次性布局算法, 并在原來(lái)算法的基礎(chǔ)上進(jìn)行了改進(jìn), 主要是: 原來(lái)層次化算法在節(jié)點(diǎn)量比較大, 并且每層分布不均勻時(shí)會(huì)出現(xiàn)頭重腳輕的狀況[6], 所以本系統(tǒng)進(jìn)行了螺旋形改造: 即先根據(jù)節(jié)點(diǎn)個(gè)數(shù)判斷層級(jí)大小(用節(jié)點(diǎn)個(gè)數(shù)的開(kāi)平方作為層級(jí)的邊長(zhǎng)); 當(dāng)節(jié)點(diǎn)增加時(shí), 將會(huì)一圈一圈螺旋增長(zhǎng), 從而有效的避免了原有層次性布局面對(duì)不均勻數(shù)據(jù)時(shí)出現(xiàn)的頭重腳輕問(wèn)題[7].
具體代碼實(shí)現(xiàn)如下:
JsonData jd=JsonMapper.ToObject(jsonString);
//將Json字符串進(jìn)行封裝為模型對(duì)象
for(Object: jd.Count){
GameObject Cube1 //創(chuàng)建層級(jí)板
Cube1.AddComponent
Cube1.AddComponent<樣式>();//增加層級(jí)樣式
for(Object: Cube1){
Point.transform.position=new Vector3(Cube1.transform.position.x-Cube1.collider.bounds.size.x*0.5f+(1.5f+(k-1))*3*Point.collider.bounds.size.x,Cube1.transform.position.y,Cube1.transform.position.z-Cube1.collider.bounds.size.z*0.5f+(1.5f+(j-1))*3*Point.collider.bounds.
size.x);}//利用布局算法設(shè)置位置
}
代碼說(shuō)明: 通過(guò)解析Web服務(wù)器提供的Json數(shù)據(jù), 獲取層次及節(jié)點(diǎn)信息, 并依此創(chuàng)建對(duì)象, 增加對(duì)象功能, 而節(jié)點(diǎn)對(duì)象的位置通過(guò)螺旋式增長(zhǎng)方式獲得. 螺旋式增長(zhǎng)方式即: 代碼中根據(jù)原有節(jié)點(diǎn)位置增加或減少一定間距的方式獲得, 環(huán)繞原有節(jié)點(diǎn)動(dòng)態(tài)增長(zhǎng).
3.1.3 布局節(jié)點(diǎn)動(dòng)態(tài)調(diào)整功能的實(shí)現(xiàn)
布局節(jié)點(diǎn)動(dòng)態(tài)調(diào)整指當(dāng)系統(tǒng)初始化完成后, 針對(duì)用戶個(gè)性化需求, 要求進(jìn)行定制化布局的一種實(shí)現(xiàn)方案. 即在布局初始化后用戶可以拖動(dòng)節(jié)點(diǎn)位置, 并且保存現(xiàn)有位置, 使下次生成時(shí)會(huì)按用戶要求生成.
實(shí)現(xiàn)偽代碼如下:
lines[i]=new VectorLine(“name”,pos[i],LineMaterial,3f, LineType.Discrete, Joins.Weld);
//用數(shù)組存下選中節(jié)點(diǎn)關(guān)系線的對(duì)象, 但是線的位置是用pos[i](位置數(shù)組)來(lái)存儲(chǔ)的
pos[i]=this.gameObject.transform.position;
//根據(jù)鼠標(biāo)位置實(shí)時(shí)更改位置數(shù)組的數(shù)值
void Update () {
for(line: lines){
line.draw3D;
}
}
//每幀繪畫(huà)關(guān)系
利用上述實(shí)現(xiàn), 可以使得所有與當(dāng)前選中節(jié)點(diǎn)的關(guān)系線會(huì)隨著選中節(jié)點(diǎn)的移動(dòng)而移動(dòng), 從而實(shí)現(xiàn)節(jié)點(diǎn)動(dòng)態(tài)調(diào)整的功能.
IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)的運(yùn)行效果如圖4所示.
圖4運(yùn)行效果圖
本系統(tǒng)利用三維的方式構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化管理模型, 以層次信息可視化技術(shù)呈現(xiàn)業(yè)務(wù)、系統(tǒng)、物理設(shè)備之間關(guān)系, 展示了各要素之間的關(guān)聯(lián)關(guān)系和所屬關(guān)系, 各層節(jié)點(diǎn)布局靈活、清晰, 直觀地展現(xiàn)了IT系統(tǒng)要素之間的層次關(guān)系以及應(yīng)用的所屬結(jié)構(gòu). 并且實(shí)時(shí)監(jiān)控各要素節(jié)點(diǎn)的業(yè)務(wù)運(yùn)行狀態(tài), 對(duì)業(yè)務(wù)節(jié)點(diǎn)提供檢索和定位功能, 支持各節(jié)點(diǎn)對(duì)其他節(jié)點(diǎn)的影響分析, 從而為系統(tǒng)管理提供信息支持. 本系統(tǒng)是可視化技術(shù)在系統(tǒng)管理方面的應(yīng)用, 對(duì)今后拓展可視化技術(shù)的應(yīng)用價(jià)值有重要意義.
本文論述了IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)的功能結(jié)構(gòu)、系統(tǒng)架構(gòu)、實(shí)施方案和關(guān)鍵技術(shù). 該可視化系統(tǒng)現(xiàn)針對(duì)IT系統(tǒng)開(kāi)發(fā), 但本文講述的技術(shù)路線不局限于IT系統(tǒng), 對(duì)其他系統(tǒng)的結(jié)構(gòu)可視化依然有效[8]. 該可視化系統(tǒng)構(gòu)建業(yè)務(wù)至IT的可視化管理模型, 對(duì)今后系統(tǒng)管理方面依然存在重大意義.
1 張馳,羅鐵堅(jiān),王相根.基于Web的信息可視化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(12):5–9.
2 布里頓.IT體系結(jié)構(gòu)與中間件.北京:人民郵電出版社,2003.
3 高屹.信息可視化技術(shù)研究分析.科技創(chuàng)新與應(yīng)用, 2016,(1):59–60.
4 洪文學(xué),王金甲.可視化和可視化分析學(xué).燕山大學(xué)學(xué)報(bào), 2010,34(2):95–99.
5 竇長(zhǎng)威.層次信息可視化技術(shù)的一種實(shí)現(xiàn)方法.工程地質(zhì)計(jì)算機(jī)應(yīng)用,2007,(2):11–15.
6 劉金明,萬(wàn)明祥.基于節(jié)點(diǎn)度分層的路由器級(jí)拓?fù)洳季炙惴?計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(1):100–106
7 楊如意,劉東蘇.基于大眾標(biāo)注的層次信息可視化算法研究. 現(xiàn)代圖書(shū)情報(bào)技術(shù),2014,(7):71–76.
8 任國(guó)棟,陳林華,陶學(xué)鋒,等.基于Unity3D的虛擬博物館信息可視化系統(tǒng).計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(9):86–90.
9 Bohunsky P, Gatterbauer W. Visual structure-based web page clustering and retrieval. International Conference on World Wide Web, WWW 2010. Raleigh, North Carolina, USA. April, 2010. 1067–1068.
10 Kjellin A, Pettersson LW, Seipel S, et al. Evaluating 2D and 3D visualizations of spatiotemporal information. ACM Trans. on Applied Perception, 2010, 7(3): 483–496.
Visual System for IT System Structure
CAO Rui-Bin1,2, LIAN Dong-Ben2
1(University of Chinese Academy of Sciences, Beijing 100049, China)2(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)
IT systems’ structural relationship visualization system is a web system, which utilizes three-dimensional visualization technology to build the business to IT visual management model and presents the relationship among the system’s business, systems, processes and physical devices supported by three-dimensional, simulation and real-time interaction[1]. It can visually show business relationship in different levels of application nodes, owner, relationship between the application and the relevant components, correspondence relationship between the logical and physical components of the entity, flow relationship in business applications. Moreover, it can achieve system monitoring information, display topology according to the condition and so on. In the meantime, it supports for a failure’s node position, influences’ analysis and fault’s backtracking function. Visualization system data is from the configuration of the management module including its backend using Struct2+Hibernate4+Spring3 technology and its front visualization module using Unity3D engine. The whole visualization system has the characteristics of easy to use, good expansibility, service-oriented, configuration support and intuitive data presentation.
systems’ structural relationship; visual management model; three-dimensional visualization technology; service-oriented; web system
國(guó)家水體污染控制與治理科技重大專項(xiàng)(2012ZX07505004)
2016-04-21;收到修改稿時(shí)間:2016-05-26
[10.15888/j.cnki.csa.005545]