曹瑞斌, 廉東本
?

曹瑞斌1,2, 廉東本2
1(中國科學院大學, 北京100049)2(中國科學院沈陽計算技術研究所, 沈陽 110168)
IT系統結構關系可視化系統是一個利用三維可視化技術構建業務至IT設施的可視化管理模型, 以立體、仿真、實時互動的方式, 呈現系統業務、系統、流程以及支撐的物理設備之間關系的Web系統[1]. 可以直觀的展示不同層次應用節點的業務關系、應用與組件之間所屬關系、邏輯組件與物理實體的對應關系、應用業務流向關系、系統監控信息和按條件顯示拓撲等, 并且支持針對某一節點發生故障的定位及影響分析、故障回溯功能. 可視化系統數據來源于配置管理模塊、后端使用Struct2+Hibernate4+Spring3技術, 前端可視化模塊使用Unity3D引擎. 整個可視化系統具有使用方便、擴展性好、面向服務、支持配置化、數據呈現直觀等特性.
系統結構關系; 可視化管理模型; 三維可視化技術; 面向服務; Web系統
系統結構關系是指系統內部各組成要素之間的相互聯系、相互作用的方式或秩序, 即各要素在時間或空間上排列和組合的具體形式[2]. IT系統結構關系表現為子系統之間的面向業務的協作關系、系統與各要素之間的組成關系、各要素之間的相互聯系與相互作用. IT系統結構關系可視化系統致力于IT系統結構關系的可視化, 對系統管理者對系統的全面認知具有重大意義.
隨著我國提出的信息化戰略的逐步實施, 我國企業的信息化水平不斷提高, 逐步建立了各種IT系統, 各系統之間關系錯綜復雜, 對系統管理者維護系統提出了巨大的挑戰. 當前國內外大多數呈現系統結構的方式是以文檔的方式來記錄系統結構關系, 以人為的方式查看、分析、判斷系統應用之間的關系, 不能實時監控系統業務負載量, 不能準確的定位故障, 不能快速地分析故障對其它組成要素的影響程度, 而且人力成本高, 效率低[3]. 鑒于此, 本文設計了IT系統結構關系可視化系統. 針對IT系統結構關系提出利用三維可視化技術構建業務至IT設施的可視化運維管理模型, 能夠實時、準確地呈現IT系統結構關系及監控系統業務[4].
IT系統結構關系可視化系統具有重要應用意義, 首先, 該系統構建了業務至IT設施的可視化管理模型, 為系統管理者提供了便利. 其次, 該系統將可視化技術應用于結構關系呈現領域, 對可視化應用具有研究價值. 最后對于該系統運用層次信息可視化技術直觀的呈現系統結構, 提供故障影響分析, 故障物理定位, 監控系統業務, 并且具有可拓展性的優點, 對今后的系統結構關系分析應用具有重大意義[4].
2.1 可視化系統功能介紹
系統結構關系分析系統主要分為系統管理、配置管理、IT應用可視化三大模塊, 如圖1所示.

圖1 系統功能圖
(1) 系統管理
系統管理模塊負責管理系統用戶、角色、資源的分配與管理; 用戶分為系統管理員(root)和普通用戶(游客)兩類: 系統管理可以管理所有資源, 普通用戶可以可視化系統資源, 但是不能作增刪改操作, 對系統起到保護的作用.
(2) 配置管理
配置管理模塊提供系統輸入和配置功能, 在錄入方面: 本系統采用智能方式, 利用相關機器學習領域的算法自動識別系統結構并錄入數據庫, 但為了整合用戶原有IT系統的目的, 也提供了手動錄入, 文本導入, 圖形編輯錄入等常見功能. 配置方面: 本系統可以自由配置樣式, 配置顯示方案.
(3) IT應用可視化
IT應用可視化模塊是本系統的核心模塊, 它提供了一個利用三維可視化技術構建業務至IT設施的可視化管理模型. 它可以從邏輯到物理兩方面呈現IT系統的運行支持結構, 可以監控業務動態, 支持故障影響分析, 支持故障回溯; 它清晰全面的為系統管理者提供了IT系統邏輯結構地圖, 使得系統管理者可以實時監控業務, 全面了解系統, 并最終為決策作指導.
2.2 實施方案
2.2.1 系統數據交互過程
本系統采用Struct2+Hibernate4+Spring3(SSH)框架搭建后臺服務, 利用Unity3D引擎進行可視化展示, 以Web方式提供與用戶的交互界面. 其交互過程如圖2所示.

圖2 交互過程
圖2中數字說明如下:
(1) 1-2
為一般的Web交互過程, 利用Http協議完成瀏覽器與服務器的交互. 主要功能為實現用戶系統管理與配置管理模塊的交互過程.
(2) 3
利用Unity3D提供的與JavaScript接口完成IT應用可視化模塊的數據調用.
(3) 4
利用Ajax異步根據Unity3D所需請求服務器數據, 同時也是Web異步請求數據接口. 此處兩個接口有點耦合, 但是實現簡單.
(4) 5-6
利用Hibernate4實現與數據庫交互. 此處主要交互一些相對固定的數據(例如節點要素名稱, 負責人等).
(5) 7
封裝服務器與Unity3D的JavaScript交互接口(SendMessage()函數), 利用Json數據格式進行交互.
(6) 8-9
對于故障、監控信息等實時數據通過調用WebService獲取.
本系統將數據分為三類: 實時數據, 常更改數據, 不常更改數據. 實時數據利用實時調用WebService獲取, 常更改數據封裝到Unity3D運行環境中, 不常更改數據存儲到數據庫中, 從而極大的提高了數據獲取速度.
2.2.2 系統架構
本系統采用模型(model)+視圖(view)+控制器(controller) (簡稱MVC)模式, 具有簡潔, 耦合度低的特點. 其系統架構如圖3所示.
本系統架構借助MVC模式的優點, 完成組件之間的解耦, 可以很好的進行拓展, 很貼切的面向服務進行開發.
3.1 關鍵技術點
本系統使用J2EE開發, 中間整合Unity3D進行三維呈現. 整個系統的難點分為三部分:
(1) Unity3D與JavaScript之間數據交互接口;
(2) 結構拓撲布局算法的設計和實現;
(3) 布局節點動態調整功能的實現.
3.1.1 Unity3D與JavaScript之間數據交互接口
(1) Unity3D調用JavaScript
Unity3D引擎支持JavaScript, 在引擎內部實現集成了調用JavaScript系統函數Application.ExternalCall來交互數據.
(2) JavaScript調用Unity3D
JavaScript調用Unity的數據內容采用封裝的SendMessage()函數, 該函數封裝了Unity3D的相關對象UnityObject2調用, UnityObject2類提供了getUnity()函數提供支持.
通過Unity3D與JavaScript之間的數據交互接口, 使得JavaScript為Unity3D提供運行環境及數據提供功能, Unity3D負責三維顯示功能, 從而使得兩部分功能明確, 耦合度降低, 利于系統維護.
3.1.2 結構拓撲布局算法的設計和實現
現有的布局算法主要包括直交布局算法、樹型布局算法、射線型布局算法、層次性布局算法和混合型布局算法等[5]. 本系統采用層次性布局算法, 并在原來算法的基礎上進行了改進, 主要是: 原來層次化算法在節點量比較大, 并且每層分布不均勻時會出現頭重腳輕的狀況[6], 所以本系統進行了螺旋形改造: 即先根據節點個數判斷層級大小(用節點個數的開平方作為層級的邊長); 當節點增加時, 將會一圈一圈螺旋增長, 從而有效的避免了原有層次性布局面對不均勻數據時出現的頭重腳輕問題[7].
具體代碼實現如下:
JsonData jd=JsonMapper.ToObject(jsonString);
//將Json字符串進行封裝為模型對象
for(Object: jd.Count){
GameObject Cube1 //創建層級板
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);}//利用布局算法設置位置
}
代碼說明: 通過解析Web服務器提供的Json數據, 獲取層次及節點信息, 并依此創建對象, 增加對象功能, 而節點對象的位置通過螺旋式增長方式獲得. 螺旋式增長方式即: 代碼中根據原有節點位置增加或減少一定間距的方式獲得, 環繞原有節點動態增長.
3.1.3 布局節點動態調整功能的實現
布局節點動態調整指當系統初始化完成后, 針對用戶個性化需求, 要求進行定制化布局的一種實現方案. 即在布局初始化后用戶可以拖動節點位置, 并且保存現有位置, 使下次生成時會按用戶要求生成.
實現偽代碼如下:
lines[i]=new VectorLine(“name”,pos[i],LineMaterial,3f, LineType.Discrete, Joins.Weld);
//用數組存下選中節點關系線的對象, 但是線的位置是用pos[i](位置數組)來存儲的
pos[i]=this.gameObject.transform.position;
//根據鼠標位置實時更改位置數組的數值
void Update () {
for(line: lines){
line.draw3D;
}
}
//每幀繪畫關系
利用上述實現, 可以使得所有與當前選中節點的關系線會隨著選中節點的移動而移動, 從而實現節點動態調整的功能.
IT系統結構關系可視化系統的運行效果如圖4所示.

圖4運行效果圖
本系統利用三維的方式構建業務至IT設施的可視化管理模型, 以層次信息可視化技術呈現業務、系統、物理設備之間關系, 展示了各要素之間的關聯關系和所屬關系, 各層節點布局靈活、清晰, 直觀地展現了IT系統要素之間的層次關系以及應用的所屬結構. 并且實時監控各要素節點的業務運行狀態, 對業務節點提供檢索和定位功能, 支持各節點對其他節點的影響分析, 從而為系統管理提供信息支持. 本系統是可視化技術在系統管理方面的應用, 對今后拓展可視化技術的應用價值有重要意義.
本文論述了IT系統結構關系可視化系統的功能結構、系統架構、實施方案和關鍵技術. 該可視化系統現針對IT系統開發, 但本文講述的技術路線不局限于IT系統, 對其他系統的結構可視化依然有效[8]. 該可視化系統構建業務至IT的可視化管理模型, 對今后系統管理方面依然存在重大意義.
1 張馳,羅鐵堅,王相根.基于Web的信息可視化系統的設計與實現.計算機系統應用,2009,18(12):5–9.
2 布里頓.IT體系結構與中間件.北京:人民郵電出版社,2003.
3 高屹.信息可視化技術研究分析.科技創新與應用, 2016,(1):59–60.
4 洪文學,王金甲.可視化和可視化分析學.燕山大學學報, 2010,34(2):95–99.
5 竇長威.層次信息可視化技術的一種實現方法.工程地質計算機應用,2007,(2):11–15.
6 劉金明,萬明祥.基于節點度分層的路由器級拓撲布局算法.計算機技術與發展,2015,25(1):100–106
7 楊如意,劉東蘇.基于大眾標注的層次信息可視化算法研究. 現代圖書情報技術,2014,(7):71–76.
8 任國棟,陳林華,陶學鋒,等.基于Unity3D的虛擬博物館信息可視化系統.計算機系統應用,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]