国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

IDC可視化軟件開發(fā)平臺中的配置與編譯子系統(tǒng)①

2017-10-13 14:46廉東本王俊霖
計算機系統(tǒng)應(yīng)用 2017年3期
關(guān)鍵詞:功能模塊增量子系統(tǒng)

薛 蕓, 廉東本, 王俊霖

?

IDC可視化軟件開發(fā)平臺中的配置與編譯子系統(tǒng)①

薛 蕓1,2, 廉東本2, 王俊霖3

1(中國科學(xué)院大學(xué), 北京 100049)2(中國科學(xué)院沈陽計算研究所, 沈陽 100168)3(大連理工大學(xué), 大連 116621)

為了解決目前IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)機房可視化管理軟件開發(fā)代價大、靈活性差、迭代周期長的問題, 提出了可定制的、模塊復(fù)用的IDC可視化軟件開發(fā)平臺, 本文詳述了該平臺中核心子系統(tǒng)—配置與編譯子系統(tǒng)的設(shè)計與實現(xiàn). 配置與編譯子系統(tǒng)采用AssetBundle技術(shù)封裝物體模型, 采用DLL封裝功能模塊, 并提出了一種新的結(jié)合編輯距離和分塊計算的增量更新算法AssetDiff, 從而滿足了編譯、管理可復(fù)用的物體模型和功能模塊的需求, 并實現(xiàn)了管理、配置、發(fā)布IDC可視化軟件以及已發(fā)布軟件遠程更新的功能.

互聯(lián)網(wǎng)數(shù)據(jù)中心; 可視化; 模塊化; Unity3D; 增量更新

IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)可視化軟件是一種通過三維可視化技術(shù)開發(fā)的機房管理工具, 它將參照現(xiàn)實場景建模的虛擬場景與機房真實運行數(shù)據(jù)相結(jié)合, 從而形象化地呈現(xiàn)機房的各項運行參數(shù)(如溫度、濕度、故障、空調(diào)新風(fēng)、門禁狀態(tài)、電氣狀態(tài)等), 從而為運維人員和管理層提供決策依據(jù)[1]. 由于不同企業(yè)的數(shù)據(jù)中心有著不同的物理環(huán)境和管理需求, 單獨為每一個企業(yè)開發(fā)IDC可視化管理軟件的成本較高、軟件復(fù)用率比較低[2]. 因此, 具備可定制、模塊化特點的IDC可視化軟件開發(fā)平臺是一個良好的解決方案. 它將IDC領(lǐng)域內(nèi)常用的三維模型與腳本代碼提取出來封裝為模塊庫, 開發(fā)人員無需考慮底層的實現(xiàn)細節(jié), 僅需要通過客戶需求來選擇相應(yīng)模塊, 就可以組裝產(chǎn)生一套新的適合需求的IDC可視化管理軟件. 該平臺可以極大地提高可視化軟件開發(fā)效率, 并對后期的客戶需求變更、遠程運維提供了良好的支持.

1 設(shè)計思想

IDC可視化軟件開發(fā)平臺采用B/S架構(gòu), 通過結(jié)合JavaWeb技術(shù)、Microsoft .NET Framework 以及Unity3D引擎來完成主體功能. 其總體架構(gòu)圖(圖1)中明確劃分了場景編輯系統(tǒng)、配置與編譯系統(tǒng)以及基于Unity3D引擎二次開發(fā)的內(nèi)核容器系統(tǒng)三個部分.

圖1 平臺架構(gòu)圖

用戶在場景編輯子系統(tǒng)中搭建與現(xiàn)實場景同步的機房三維場景后, 進入到配置與編譯子系統(tǒng)中選擇該機房的可視化管理軟件需要的相關(guān)模塊, 則可在內(nèi)核容器中呈現(xiàn)出相應(yīng)的可視化軟件.

其中配置與編譯子系統(tǒng)是整個平臺的核心, 通過對平臺業(yè)務(wù)需求的分析整合, 將配置與編譯系統(tǒng)的主要業(yè)務(wù)過程分為以下幾個階段:

1) 將用戶上傳各種格式的三維模型打包壓縮為平臺標(biāo)準(zhǔn)物體模型, 將用戶上傳的某功能相關(guān)代碼編譯為平臺標(biāo)準(zhǔn)功能模塊.

2) 創(chuàng)建新的可視化軟件: 錄入該可視化軟件的基本信息(軟件名稱、描述、部署地點、機房所屬企業(yè)信息等).

3) 選擇該可視化軟件對應(yīng)的現(xiàn)實機房場景的三維數(shù)據(jù)(樓體、樓層、機柜、機架、線路等物體模型在三維空間中的位置信息).

4) 配置該可視化軟件的可用功能與相關(guān)參數(shù): 根據(jù)場景數(shù)據(jù)中涉及的物體模型, 查詢出該機房可以使用的可用功能模塊全集: 包含告警、安防、門禁、電量監(jiān)測、空間使用情況監(jiān)測等功能, 相關(guān)參數(shù)包含有環(huán)境傳感器與攝像探頭的WebService路徑、軟件中的UI主題顏色等.

5) 可視化軟件發(fā)布: 將該可視化軟件需要的物體模型和用戶選擇的功能模塊按照配置參數(shù)進行裝配, 生成配置數(shù)據(jù)與資源文件夾, 輸出至內(nèi)核容器, 從而輸出最終軟件產(chǎn)品.

6) 對已部署的可視化軟件產(chǎn)品實施增量更新: 當(dāng)平臺對該可視化軟件相關(guān)數(shù)據(jù)進行修改時, 將使用增量策略對已部署軟件進行遠程更新.

根據(jù)以上業(yè)務(wù)需求, 將配置與編譯子系統(tǒng)從整個平臺中分離出來, 并將其劃分為下列的模塊, 如圖2.

圖2 系統(tǒng)模塊劃分

2 數(shù)據(jù)庫設(shè)計

配置與編譯子系統(tǒng)使用MySQL數(shù)據(jù)庫, 由前文的需求與模塊分析, 確定了本系統(tǒng)需要設(shè)計的數(shù)據(jù)庫表有以下7個表: 物體模型表Object_Models、功能模塊表Fun_Modules、模型_模塊關(guān)系表R_Model_Module、軟件基本信息表App_Info、軟件_模型表App_Model、軟件_模塊表App_Module、軟件_配置表App_Config.

其中模型_模塊關(guān)系表R_Model_Module用于存儲物體模型和功能模塊的對應(yīng)關(guān)系, 如機柜模型與機柜故障變色提醒的功能模塊間存在的對應(yīng)關(guān)系.

3 關(guān)鍵技術(shù)介紹

3.1 模塊復(fù)用的相關(guān)技術(shù)

配置與編譯子系統(tǒng)以可復(fù)用的物體模型和功能模塊作為軟件配置的基本粒度, 并提供物體模型和功能模塊的編譯與管理服務(wù).

3.1.1 AssetBundle技術(shù)

在本系統(tǒng)中, 可復(fù)用的物體模型是以AssetBundle文件的形式被存儲和管理的: AssetBundle是Unity3D Pro提供的一項重要功能, 可以將各類資源如三維模型以及對應(yīng)的材質(zhì)、貼圖等內(nèi)容都封裝并壓縮到AssetBundle格式的文件中[3]. Untiy3D引擎可以從外部加載AssetBundle文件并呈現(xiàn)在應(yīng)用程序中. 本系統(tǒng)通過調(diào)用Unity3D提供的BuildPipeline (編譯管線)API, 將用戶上傳的各種三維模型打包為AssetBunlde文件.

3.1.2 DLL技術(shù)

在本系統(tǒng)中, 可復(fù)用的功能模塊以DLL(動態(tài)鏈接庫)文件的形式存儲和管理. Unity3D引擎支持C#作為腳本語言, 即可以使用.NET平臺的反射機制動態(tài)加載外部DLL. 在當(dāng)對一個未知類型的 DLL 文件進行加載時, 反射機制可以從 DLL 文件中獲取其中所有的類和其描述信息, 包括方法、屬性和事件等關(guān)鍵信息, 使用這些信息, 動態(tài)地生成相應(yīng)的對象[4].

用戶將一組功能相關(guān)的腳本文件上傳至本系統(tǒng)中, 本系統(tǒng)將調(diào)用.Net Framework 3.5 提供的csc命令將腳本編譯為DLL文件. 在編譯過程中, 將添加UnityEngine.dll、UnityEngine.UI.dll 作為引用, 以保證DLL能夠在Unity3D引擎中正常運行.

3.2 增量更新算法

IDC領(lǐng)域中所涉及的房間、機柜、設(shè)備等模型精度較高, 體積較大. 軟件在部署到生產(chǎn)現(xiàn)場之后, 如果需要修改模型, 如更換貼圖或者紋理等操作, 就必須從本系統(tǒng)中遠程下載新的AssetBundle文件, 這就對網(wǎng)絡(luò)傳輸速度提出了很高的要求. 為了解決這一問題, 本系統(tǒng)設(shè)計了一種結(jié)合編輯距離和分塊計算的增量更新算法AssetDiff來實現(xiàn)AssetBundle的差異更新.

編輯距離(Levenshtein距離), 是指兩個字符串之間, 由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)[5]. 記錄計算編輯距離的操作步驟即可獲得一字符串轉(zhuǎn)化為另一個字符串的增量文件. 編輯距離計算偽代碼為算法1.

編輯距離算法可以精確到字符級別, 但是計算過程中需要使用較大的內(nèi)存. 而Chunk算法中增量更新的精度與塊的大小有關(guān), 無法避免冗余更新. AssetDiff結(jié)合了以上兩種算法: 設(shè)定一個閾值, 當(dāng)文件長度小于該閾值是通過計算編輯距離獲取增量文件, 當(dāng)文件長度大于該閾值時, 對文件使用分塊算法找出兩個文件的最長公共連續(xù)塊, 然后用這個連續(xù)塊將文件切分為前綴、公共部分、后綴, 分別使用前綴、后綴作為參數(shù)遞歸調(diào)用AssetDiff. 算法流程圖如圖4.

圖4 AssetDiff算法流程圖

一個AssetBundle文件中包含有模型、紋理、貼圖等多個AssetObject , AssetObject的描述結(jié)構(gòu)如下:

struct ObjectHeader {

struct ObjectInfo {

int pathID;

int offset;

int length;

byte classID[8];

};

int ObjectCount;

ObjectInfo Object[];

};

其中pathID為每個AssetObject的唯一編號, 通過偏移量offset可以取得該Object相對于整個AssetBundle文件的位置. 所以, 在調(diào)用AssetDiff 算法計算增量文件之前, 需要先將新舊文件反序列化, 然后按照offset進行分塊, 剔除掉未發(fā)生修改的AssetObject, 然后將剩余的部分作為AssetDiff的參數(shù)來計算增量文件.

如圖5所示, 有兩個AseetBundle文件A、B, 其內(nèi)容為兩個完全一樣的人物放置在不同材質(zhì)的地面之上. A、B文件大小都為2.3MB, 使用AssetDiff算法求A變換到B的增量文件, 增量文件大小為19KB, 降低了需要更新的數(shù)據(jù)量.

圖 5 AssetBundle文件增量更新示例

4 系統(tǒng)具體實現(xiàn)

基于上述的系統(tǒng)總體架構(gòu)和關(guān)鍵技術(shù), 實現(xiàn)了IDC可視化軟件開發(fā)平臺中的配置與編譯子系統(tǒng).

圖6 系統(tǒng)界面

圖6所示的界面為軟件配置表單, 在該頁面中配置該可視化軟件的可用功能與相關(guān)參數(shù), 如應(yīng)用的輸出目錄、UI風(fēng)格顏色、外部動態(tài)環(huán)境傳感器數(shù)據(jù)的Web Service路徑、監(jiān)控探頭的訪問路徑等配置項目.

最終, 本系統(tǒng)編譯產(chǎn)生的應(yīng)用效果如圖7所示.

圖7 已發(fā)布軟件效果

4 結(jié)語

本文主要研究討論了IDC可視化軟件開發(fā)平臺中配置與編譯子系統(tǒng)的設(shè)計思想與關(guān)鍵技術(shù). 其關(guān)鍵技術(shù)之一是利用AssetBundle技術(shù)與DLL技術(shù)構(gòu)建了可視化軟件模塊化的技術(shù)路線. 通過該技術(shù)路線實現(xiàn)了模塊間的自由拼裝. 并為該系統(tǒng)中軟件的遠程增量更新功能設(shè)計了一種結(jié)合了編輯距離和分塊計算的增量更新算法AssetDiff, 保證可靠更新的同時降低了冗余更新的數(shù)據(jù)量, 大大提高了遠程更新的效率.

1 Dillenberger DN, Osias MJ. Management of enterprise systems and applications using three-dimensional visualization technology. US, US7839401. 2010.

2 侯亮,唐任仲,徐燕申.產(chǎn)品模塊化設(shè)計理論、技術(shù)與應(yīng)用研究進展.機械工程學(xué)報,2004,40(1):56–61.

3 馬瑞.三維虛擬數(shù)字校園系統(tǒng)的資源封包設(shè)計.長江大學(xué)學(xué)報自然科學(xué)版(理工旬刊),2014,(34):49–51.

4 陳濤,郝偉.基于.Net反射原理的DLL動態(tài)加載機制設(shè)計與應(yīng)用.齊齊哈爾大學(xué)學(xué)報(自然科學(xué)版),2014,(3).

5 石野,黃龍和,車天陽,等.基于語法樹的程序相似度判定方法.吉林大學(xué)學(xué)報(信息科學(xué)版),2014,32(1):95–100.

Configuration and Compilation Subsystem of IDC Visual Software Development Platform

XUE Yun1,2, LIAN Dong-Ben2, WANG Jun-Lin3

1(University of Chinese Academy of Sciences, Beijing 100049, China)2(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)3(Dalian University of Technology, Dalian 116024, China)

Aiming at the problem of Long development cycle, high cost and poor flexibility in the field of IDC (Internet Data Center) computer room visual management software, an IDC Visual software development platform is proposed. This paper describes the design and implementation of the core subsystem, configuration and compilation subsystem of the platform. Configuration and compilation subsystem uses AssetBundle package object model, uses DLL encapsulation function module, and proposes a new incremental updating algorithm AssetDiff that combines edit distance and block computation. The system meets the need of compilation and management of Reusable Object Model and functional model and implements the function of management, configuration, releases IDC visualization software and the publishes software remote update.

internet data center; visualization; modularization; unity3d; incremental update

國家水體污染控制與治理科技重大專項(2012ZX07505004)

2016-07-04;

2016-07-29

[10.15888/j.cnki.csa.005650]

猜你喜歡
功能模塊增量子系統(tǒng)
不對中轉(zhuǎn)子系統(tǒng)耦合動力學(xué)特性研究
導(dǎo)彈增量式自適應(yīng)容錯控制系統(tǒng)設(shè)計
提質(zhì)和增量之間的“辯證”
全現(xiàn)款操作,年增量1千萬!這家GMP漁藥廠為何這么牛?
特大城市快遞垃圾增量占垃圾增量93%
網(wǎng)絡(luò)空間供應(yīng)鏈中入侵檢測及防御子系統(tǒng)的投資機制研究
網(wǎng)絡(luò)空間供應(yīng)鏈中入侵檢測及防御子系統(tǒng)的投資機制研究
一種基于NB-IoT的公路霧燈自動指示系統(tǒng)
商業(yè)模式是新媒體的核心
基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究