曹瑞斌, 廉東本
?
曹瑞斌1,2, 廉東本2
1(中國科學(xué)院大學(xué), 北京100049)2(中國科學(xué)院沈陽計算技術(shù)研究所, 沈陽 110168)
IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)是一個利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化管理模型, 以立體、仿真、實時互動的方式, 呈現(xiàn)系統(tǒng)業(yè)務(wù)、系統(tǒng)、流程以及支撐的物理設(shè)備之間關(guān)系的Web系統(tǒng)[1]. 可以直觀的展示不同層次應(yīng)用節(jié)點的業(yè)務(wù)關(guān)系、應(yīng)用與組件之間所屬關(guān)系、邏輯組件與物理實體的對應(yīng)關(guān)系、應(yīng)用業(yè)務(wù)流向關(guān)系、系統(tǒng)監(jiān)控信息和按條件顯示拓?fù)涞? 并且支持針對某一節(jié)點發(fā)生故障的定位及影響分析、故障回溯功能. 可視化系統(tǒng)數(shù)據(jù)來源于配置管理模塊、后端使用Struct2+Hibernate4+Spring3技術(shù), 前端可視化模塊使用Unity3D引擎. 整個可視化系統(tǒng)具有使用方便、擴展性好、面向服務(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)系、相互作用的方式或秩序, 即各要素在時間或空間上排列和組合的具體形式[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)系的可視化, 對系統(tǒng)管理者對系統(tǒng)的全面認(rèn)知具有重大意義.
隨著我國提出的信息化戰(zhàn)略的逐步實施, 我國企業(yè)的信息化水平不斷提高, 逐步建立了各種IT系統(tǒng), 各系統(tǒng)之間關(guān)系錯綜復(fù)雜, 對系統(tǒng)管理者維護系統(tǒng)提出了巨大的挑戰(zhàn). 當(dāng)前國內(nèi)外大多數(shù)呈現(xiàn)系統(tǒng)結(jié)構(gòu)的方式是以文檔的方式來記錄系統(tǒng)結(jié)構(gòu)關(guān)系, 以人為的方式查看、分析、判斷系統(tǒng)應(yīng)用之間的關(guān)系, 不能實時監(jiān)控系統(tǒng)業(yè)務(wù)負(fù)載量, 不能準(zhǔn)確的定位故障, 不能快速地分析故障對其它組成要素的影響程度, 而且人力成本高, 效率低[3]. 鑒于此, 本文設(shè)計了IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng). 針對IT系統(tǒng)結(jié)構(gòu)關(guān)系提出利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化運維管理模型, 能夠?qū)崟r、準(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)域, 對可視化應(yīng)用具有研究價值. 最后對于該系統(tǒng)運用層次信息可視化技術(shù)直觀的呈現(xiàn)系統(tǒng)結(jié)構(gòu), 提供故障影響分析, 故障物理定位, 監(jiān)控系統(tǒng)業(yè)務(wù), 并且具有可拓展性的優(yōu)點, 對今后的系統(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)資源, 但是不能作增刪改操作, 對系統(tǒng)起到保護的作用.
(2) 配置管理
配置管理模塊提供系統(tǒng)輸入和配置功能, 在錄入方面: 本系統(tǒng)采用智能方式, 利用相關(guān)機器學(xué)習(xí)領(lǐng)域的算法自動識別系統(tǒng)結(jié)構(gòu)并錄入數(shù)據(jù)庫, 但為了整合用戶原有IT系統(tǒng)的目的, 也提供了手動錄入, 文本導(dǎo)入, 圖形編輯錄入等常見功能. 配置方面: 本系統(tǒng)可以自由配置樣式, 配置顯示方案.
(3) IT應(yīng)用可視化
IT應(yīng)用可視化模塊是本系統(tǒng)的核心模塊, 它提供了一個利用三維可視化技術(shù)構(gòu)建業(yè)務(wù)至IT設(shè)施的可視化管理模型. 它可以從邏輯到物理兩方面呈現(xiàn)IT系統(tǒng)的運行支持結(jié)構(gòu), 可以監(jiān)控業(yè)務(wù)動態(tài), 支持故障影響分析, 支持故障回溯; 它清晰全面的為系統(tǒng)管理者提供了IT系統(tǒng)邏輯結(jié)構(gòu)地圖, 使得系統(tǒng)管理者可以實時監(jiān)控業(yè)務(wù), 全面了解系統(tǒng), 并最終為決策作指導(dǎo).
2.2 實施方案
2.2.1 系統(tǒng)數(shù)據(jù)交互過程
本系統(tǒng)采用Struct2+Hibernate4+Spring3(SSH)框架搭建后臺服務(wù), 利用Unity3D引擎進(jìn)行可視化展示, 以Web方式提供與用戶的交互界面. 其交互過程如圖2所示.
圖2 交互過程
圖2中數(shù)字說明如下:
(1) 1-2
為一般的Web交互過程, 利用Http協(xié)議完成瀏覽器與服務(wù)器的交互. 主要功能為實現(xiàn)用戶系統(tǒng)管理與配置管理模塊的交互過程.
(2) 3
利用Unity3D提供的與JavaScript接口完成IT應(yīng)用可視化模塊的數(shù)據(jù)調(diào)用.
(3) 4
利用Ajax異步根據(jù)Unity3D所需請求服務(wù)器數(shù)據(jù), 同時也是Web異步請求數(shù)據(jù)接口. 此處兩個接口有點耦合, 但是實現(xiàn)簡單.
(4) 5-6
利用Hibernate4實現(xiàn)與數(shù)據(jù)庫交互. 此處主要交互一些相對固定的數(shù)據(jù)(例如節(jié)點要素名稱, 負(fù)責(zé)人等).
(5) 7
封裝服務(wù)器與Unity3D的JavaScript交互接口(SendMessage()函數(shù)), 利用Json數(shù)據(jù)格式進(jìn)行交互.
(6) 8-9
對于故障、監(jiān)控信息等實時數(shù)據(jù)通過調(diào)用WebService獲取.
本系統(tǒng)將數(shù)據(jù)分為三類: 實時數(shù)據(jù), 常更改數(shù)據(jù), 不常更改數(shù)據(jù). 實時數(shù)據(jù)利用實時調(diào)用WebService獲取, 常更改數(shù)據(jù)封裝到Unity3D運行環(huán)境中, 不常更改數(shù)據(jù)存儲到數(shù)據(jù)庫中, 從而極大的提高了數(shù)據(jù)獲取速度.
2.2.2 系統(tǒng)架構(gòu)
本系統(tǒng)采用模型(model)+視圖(view)+控制器(controller) (簡稱MVC)模式, 具有簡潔, 耦合度低的特點. 其系統(tǒng)架構(gòu)如圖3所示.
本系統(tǒng)架構(gòu)借助MVC模式的優(yōu)點, 完成組件之間的解耦, 可以很好的進(jìn)行拓展, 很貼切的面向服務(wù)進(jìn)行開發(fā).
3.1 關(guān)鍵技術(shù)點
本系統(tǒng)使用J2EE開發(fā), 中間整合Unity3D進(jìn)行三維呈現(xiàn). 整個系統(tǒng)的難點分為三部分:
(1) Unity3D與JavaScript之間數(shù)據(jù)交互接口;
(2) 結(jié)構(gòu)拓?fù)洳季炙惴ǖ脑O(shè)計和實現(xiàn);
(3) 布局節(jié)點動態(tài)調(diào)整功能的實現(xiàn).
3.1.1 Unity3D與JavaScript之間數(shù)據(jù)交互接口
(1) Unity3D調(diào)用JavaScript
Unity3D引擎支持JavaScript, 在引擎內(nèi)部實現(xiàn)集成了調(diào)用JavaScript系統(tǒng)函數(shù)Application.ExternalCall來交互數(shù)據(jù).
(2) JavaScript調(diào)用Unity3D
JavaScript調(diào)用Unity的數(shù)據(jù)內(nèi)容采用封裝的SendMessage()函數(shù), 該函數(shù)封裝了Unity3D的相關(guān)對象UnityObject2調(diào)用, UnityObject2類提供了getUnity()函數(shù)提供支持.
通過Unity3D與JavaScript之間的數(shù)據(jù)交互接口, 使得JavaScript為Unity3D提供運行環(huán)境及數(shù)據(jù)提供功能, Unity3D負(fù)責(zé)三維顯示功能, 從而使得兩部分功能明確, 耦合度降低, 利于系統(tǒng)維護.
3.1.2 結(jié)構(gòu)拓?fù)洳季炙惴ǖ脑O(shè)計和實現(xiàn)
現(xiàn)有的布局算法主要包括直交布局算法、樹型布局算法、射線型布局算法、層次性布局算法和混合型布局算法等[5]. 本系統(tǒng)采用層次性布局算法, 并在原來算法的基礎(chǔ)上進(jìn)行了改進(jìn), 主要是: 原來層次化算法在節(jié)點量比較大, 并且每層分布不均勻時會出現(xiàn)頭重腳輕的狀況[6], 所以本系統(tǒng)進(jìn)行了螺旋形改造: 即先根據(jù)節(jié)點個數(shù)判斷層級大小(用節(jié)點個數(shù)的開平方作為層級的邊長); 當(dāng)節(jié)點增加時, 將會一圈一圈螺旋增長, 從而有效的避免了原有層次性布局面對不均勻數(shù)據(jù)時出現(xiàn)的頭重腳輕問題[7].
具體代碼實現(xiàn)如下:
JsonData jd=JsonMapper.ToObject(jsonString);
//將Json字符串進(jìn)行封裝為模型對象
for(Object: jd.Count){
GameObject Cube1 //創(chuàng)建層級板
Cube1.AddComponent
Cube1.AddComponent<樣式>();//增加層級樣式
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è)置位置
}
代碼說明: 通過解析Web服務(wù)器提供的Json數(shù)據(jù), 獲取層次及節(jié)點信息, 并依此創(chuàng)建對象, 增加對象功能, 而節(jié)點對象的位置通過螺旋式增長方式獲得. 螺旋式增長方式即: 代碼中根據(jù)原有節(jié)點位置增加或減少一定間距的方式獲得, 環(huán)繞原有節(jié)點動態(tài)增長.
3.1.3 布局節(jié)點動態(tài)調(diào)整功能的實現(xiàn)
布局節(jié)點動態(tài)調(diào)整指當(dāng)系統(tǒng)初始化完成后, 針對用戶個性化需求, 要求進(jìn)行定制化布局的一種實現(xiàn)方案. 即在布局初始化后用戶可以拖動節(jié)點位置, 并且保存現(xiàn)有位置, 使下次生成時會按用戶要求生成.
實現(xiàn)偽代碼如下:
lines[i]=new VectorLine(“name”,pos[i],LineMaterial,3f, LineType.Discrete, Joins.Weld);
//用數(shù)組存下選中節(jié)點關(guān)系線的對象, 但是線的位置是用pos[i](位置數(shù)組)來存儲的
pos[i]=this.gameObject.transform.position;
//根據(jù)鼠標(biāo)位置實時更改位置數(shù)組的數(shù)值
void Update () {
for(line: lines){
line.draw3D;
}
}
//每幀繪畫關(guān)系
利用上述實現(xiàn), 可以使得所有與當(dāng)前選中節(jié)點的關(guān)系線會隨著選中節(jié)點的移動而移動, 從而實現(xiàn)節(jié)點動態(tài)調(diào)整的功能.
IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)的運行效果如圖4所示.
圖4運行效果圖
本系統(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é)點布局靈活、清晰, 直觀地展現(xiàn)了IT系統(tǒng)要素之間的層次關(guān)系以及應(yīng)用的所屬結(jié)構(gòu). 并且實時監(jiān)控各要素節(jié)點的業(yè)務(wù)運行狀態(tài), 對業(yè)務(wù)節(jié)點提供檢索和定位功能, 支持各節(jié)點對其他節(jié)點的影響分析, 從而為系統(tǒng)管理提供信息支持. 本系統(tǒng)是可視化技術(shù)在系統(tǒng)管理方面的應(yīng)用, 對今后拓展可視化技術(shù)的應(yīng)用價值有重要意義.
本文論述了IT系統(tǒng)結(jié)構(gòu)關(guān)系可視化系統(tǒng)的功能結(jié)構(gòu)、系統(tǒng)架構(gòu)、實施方案和關(guān)鍵技術(shù). 該可視化系統(tǒng)現(xiàn)針對IT系統(tǒng)開發(fā), 但本文講述的技術(shù)路線不局限于IT系統(tǒng), 對其他系統(tǒng)的結(jié)構(gòu)可視化依然有效[8]. 該可視化系統(tǒng)構(gòu)建業(yè)務(wù)至IT的可視化管理模型, 對今后系統(tǒng)管理方面依然存在重大意義.
1 張馳,羅鐵堅,王相根.基于Web的信息可視化系統(tǒng)的設(shè)計與實現(xiàn).計算機系統(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é)報, 2010,34(2):95–99.
5 竇長威.層次信息可視化技術(shù)的一種實現(xiàn)方法.工程地質(zhì)計算機應(yīng)用,2007,(2):11–15.
6 劉金明,萬明祥.基于節(jié)點度分層的路由器級拓?fù)洳季炙惴?計算機技術(shù)與發(fā)展,2015,25(1):100–106
7 楊如意,劉東蘇.基于大眾標(biāo)注的層次信息可視化算法研究. 現(xiàn)代圖書情報技術(shù),2014,(7):71–76.
8 任國棟,陳林華,陶學(xué)鋒,等.基于Unity3D的虛擬博物館信息可視化系統(tǒng).計算機系統(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
國家水體污染控制與治理科技重大專項(2012ZX07505004)
2016-04-21;收到修改稿時間:2016-05-26
[10.15888/j.cnki.csa.005545]