王 磊,廉東本,王俊霖
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 100168)
3(大連理工大學(xué),大連 116024)
數(shù)據(jù)中心三維可視化場(chǎng)景編輯器的設(shè)計(jì)①
王 磊1,2,廉東本2,王俊霖3
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 100168)
3(大連理工大學(xué),大連 116024)
針對(duì)當(dāng)前數(shù)據(jù)中心的三維可視化場(chǎng)景重復(fù)開發(fā)造成復(fù)用性較差的問題,提出了數(shù)據(jù)中心三維可視化場(chǎng)景編輯器.借助三維引擎技術(shù),以仿真、立體、互動(dòng)實(shí)時(shí)的方式為管理者提供一個(gè)完整的、可視化、網(wǎng)絡(luò)化的虛擬環(huán)境管理設(shè)計(jì)平臺(tái).可以高效靈活的創(chuàng)建數(shù)據(jù)中心3D場(chǎng)景,用于場(chǎng)景建模和數(shù)據(jù)中心的輔助設(shè)計(jì).可視化編輯器基于Unity3D引擎和Web技術(shù)進(jìn)行搭建,提供直觀的瀏覽器操作界面和環(huán)境實(shí)時(shí)監(jiān)控系統(tǒng),解決了三維場(chǎng)景遠(yuǎn)程實(shí)時(shí)查看數(shù)據(jù)中心監(jiān)控等問題.用戶可以借此快速搭建三維可視化場(chǎng)景,減少重復(fù)開發(fā).在提供其他3D模型基礎(chǔ)上,此編輯器也能夠廣泛用于其他非數(shù)據(jù)中心可視化場(chǎng)景的搭建和編輯.
數(shù)據(jù)中心;三維可視化;場(chǎng)景編輯;Unity3D;遠(yuǎn)程監(jiān)控
隨著社會(huì)的數(shù)據(jù)信息量不斷的增多,我們需要更大的數(shù)據(jù)中心處理這些數(shù)據(jù),這也導(dǎo)致數(shù)據(jù)中心具有向大規(guī)模集中式發(fā)展的趨勢(shì)[1].數(shù)據(jù)中心計(jì)算機(jī)系統(tǒng)數(shù)量的擴(kuò)大往往也伴隨著相關(guān)的環(huán)境設(shè)備的增加,這給數(shù)據(jù)中心的維護(hù)和管理帶來了極大的不便.在大型數(shù)據(jù)中心中往往分散著多種管理系統(tǒng),它們之間相互存在,如何高效、統(tǒng)一地管理這些設(shè)備就成為企業(yè)的難題.因此人們提出了開發(fā)三維可視化場(chǎng)景管理平臺(tái)以方便對(duì)數(shù)據(jù)中心進(jìn)行展示、管理、監(jiān)控.數(shù)據(jù)中心的三維可視化場(chǎng)景具有實(shí)時(shí)提供設(shè)備參數(shù)、提供動(dòng)力環(huán)境的實(shí)時(shí)表現(xiàn)等特點(diǎn),滿足了管理者對(duì)數(shù)據(jù)中心“集中監(jiān)控,統(tǒng)一管理”的需求.而其中所用到的虛擬化技術(shù)以其交互性、想象性和沉浸式的技術(shù)特征[2]實(shí)現(xiàn)了將數(shù)據(jù)中心設(shè)備從現(xiàn)實(shí)到虛擬,從物理到邏輯的全面對(duì)應(yīng)三維可視化以及從人工被動(dòng)管理到統(tǒng)一虛擬化管理的轉(zhuǎn)變.但目前的數(shù)據(jù)中心三維可視化場(chǎng)景往往是是針對(duì)特定數(shù)據(jù)中心場(chǎng)景的開發(fā),這造成了復(fù)用性不強(qiáng)、代碼重復(fù)、開發(fā)難度高等問題.因此本文設(shè)計(jì)了一個(gè)具有通用性的數(shù)據(jù)中心三維可視化場(chǎng)景編輯系統(tǒng)來快速搭建不同數(shù)據(jù)中心的三維場(chǎng)景.
1.1 編輯器系統(tǒng)結(jié)構(gòu)
本編輯器采用了更加輕便的B/S架構(gòu),減少了傳統(tǒng)C/S模式給用戶安裝和升級(jí)帶來的麻煩.采用Spring+Struts2+Hibernate框架進(jìn)行開發(fā),該框架可以讓開發(fā)者在較短的時(shí)間內(nèi)有效率地搭建結(jié)構(gòu)清晰,復(fù)用性較強(qiáng)的Web程序.此系統(tǒng)分為三個(gè)層次:瀏覽器端、服務(wù)器端、數(shù)據(jù)庫(kù).如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)圖
1.2 三維可視化場(chǎng)景編輯器的功能介紹
該編輯器主要分四個(gè)功能部分:系統(tǒng)管理,場(chǎng)景管理,基礎(chǔ)管理,功能管理.如圖2所示.
圖2 編輯器功能圖
系統(tǒng)管理:包含用戶管理,權(quán)限管理,資源管理.用戶管理是分為用戶和游客管理,驗(yàn)證登錄的合法性.權(quán)限管理是指用戶是否有權(quán)限能對(duì)場(chǎng)景編輯操作.資源管理是指具有權(quán)限的管理員可以對(duì)三維模型和物品欄下的圖片UI進(jìn)行更新.
場(chǎng)景管理:可以對(duì)場(chǎng)景的創(chuàng)建,刪除和切換.同時(shí)還要對(duì)場(chǎng)景保存和還原.
基礎(chǔ)管理:該模塊包含了場(chǎng)景基本操作.天空盒的設(shè)置模擬真實(shí)室外場(chǎng)景,攝像機(jī)漫游(非自動(dòng))可以不同角度環(huán)繞觀察物體,或者觀測(cè)某一區(qū)域的場(chǎng)景變化.框選則使用OpenGL技術(shù)能同時(shí)選中大量物體,并對(duì)他們進(jìn)行相同的操作.3D/2D的切換是在三維場(chǎng)景和二維場(chǎng)景相互切換,方便用戶查看整體場(chǎng)景布局.
功能管理:該功能部分包括對(duì)三維數(shù)據(jù)中心物體的一些操作.主要是GUI更改物體Transform屬性,物體批量生成,物體打組/解組,物體移動(dòng),框選物體后物體按照某一方向?qū)R,監(jiān)控系統(tǒng)管理等操作.
1.3 技術(shù)路線
圖3詳細(xì)的展示了Unity3D引擎和JavaScript引擎的交互、JavaScript引擎和服務(wù)器的交互、服務(wù)器和數(shù)據(jù)庫(kù)的交互等流程.
圖3 技術(shù)路線圖
主要過程:
1)1->2->3->4->5(用戶登錄過程):用戶在瀏覽器端輸入用戶名信息,服務(wù)端和數(shù)據(jù)庫(kù)協(xié)作驗(yàn)證用戶登錄的合法性和權(quán)限,確認(rèn)合法,返回主頁(yè)面.
2)A<->B<->C(Unity3D和Web端的交互):這個(gè)過程往往是多次相互通信完成的,服務(wù)發(fā)起者可以是Web端,也可以是Unity3D端.該交互是Unity3D和JavaScript引擎的通信,再由Web端Struts2+Spring解析通信消息,Hibernate讀取數(shù)據(jù)庫(kù),完成交互服務(wù).
3)U->P->Q->R(場(chǎng)景保存):Ajax發(fā)出保存請(qǐng)求, Unity3D引擎接收請(qǐng)求,并廣播消息讓場(chǎng)景每個(gè)物體以Json數(shù)據(jù)格式向JavaScript發(fā)送自身信息,JavaScript引擎收到消息后發(fā)送給服務(wù)器端解析JSon數(shù)據(jù),并存入MySQL數(shù)據(jù)庫(kù).
4)Q->R->S->T->U(場(chǎng)景恢復(fù)):JavaScript向服務(wù)器端發(fā)起請(qǐng)求,經(jīng)WebService解析后,根據(jù)場(chǎng)景名稱讀取相關(guān)場(chǎng)景數(shù)據(jù),將數(shù)據(jù)處理后發(fā)送給Unity3D工具,Unity3D使用Resources.Load實(shí)例化預(yù)設(shè)生成物體.完成場(chǎng)景恢復(fù).
5)Q->R->S->T->V(下載場(chǎng)景數(shù)據(jù)):用戶通過WebService下載場(chǎng)景,下載的數(shù)據(jù)格式為Json格式.
數(shù)據(jù)中心三維可視化場(chǎng)景編輯器借助Unity3D進(jìn)行三維可視化模型呈現(xiàn).有四個(gè)關(guān)鍵技術(shù)點(diǎn)和算法改進(jìn):場(chǎng)景物體中批量算法改進(jìn)的實(shí)現(xiàn)、場(chǎng)景的保存和恢復(fù)、環(huán)境實(shí)時(shí)監(jiān)控系統(tǒng)、三維場(chǎng)景實(shí)時(shí)顯示數(shù)據(jù)中心監(jiān)控主系統(tǒng)的實(shí)現(xiàn).
2.1 場(chǎng)景物體批量算法改進(jìn)
本系統(tǒng)對(duì)原有物體批量算法進(jìn)行了改進(jìn),原算法只能在X、Y、Z中某單一方向進(jìn)行批量復(fù)制,而無(wú)法有效地在任意方向上批量生成物體.因此本系統(tǒng)在原有算法基礎(chǔ)上增加了向.量來得到物體與鼠標(biāo)之間的真實(shí)方向,從而使物體能夠在任意方向上批量生成.解決了機(jī)柜不能按一定角度斜向批量擺放問題.
改進(jìn)算法部分代碼如下:
2.2 場(chǎng)景的保存和恢復(fù)
用戶在三維可視化場(chǎng)景編輯系統(tǒng)完成場(chǎng)景編輯后,編輯器需要將場(chǎng)景數(shù)據(jù)永久保存.在此過程中,通過最高級(jí)別父物體向所有子物體廣播信息,將每個(gè)子物體的位置position參數(shù)、縮放localScale參數(shù)、旋轉(zhuǎn)eulerAngles參數(shù)、名稱、所屬預(yù)設(shè)的名稱、父體的名稱(以上是三維場(chǎng)景保存和恢復(fù)的必要數(shù)據(jù))均以Json的數(shù)據(jù)形式發(fā)送給Web端,數(shù)據(jù)通過數(shù)據(jù)服務(wù)接口進(jìn)行驗(yàn)證處理后保存到相應(yīng)的數(shù)據(jù)庫(kù)中.
場(chǎng)景保存流程如圖4所示.
圖4 場(chǎng)景保存流程
保存場(chǎng)景后,可以恢復(fù)場(chǎng)景,并重新編輯.恢復(fù)場(chǎng)景需要獲得預(yù)設(shè)名字以實(shí)例化每個(gè)物體.
2.3 環(huán)境實(shí)時(shí)監(jiān)控系統(tǒng)
環(huán)境監(jiān)控一般是通過數(shù)據(jù)驅(qū)動(dòng)實(shí)時(shí)自動(dòng)生成和更新3D實(shí)景,快速反映出管理對(duì)象的位置、煙感、溫感等變更情況 ,通過可視化的方式實(shí)時(shí)反映系統(tǒng)的運(yùn)行狀態(tài),提供最貼近真實(shí)情況的虛擬現(xiàn)實(shí)環(huán)境.
2.3.1 位置信息數(shù)據(jù)驅(qū)動(dòng)
對(duì)現(xiàn)實(shí)數(shù)據(jù)中心進(jìn)行三維可視化場(chǎng)景的設(shè)計(jì)與編輯之后,需要將數(shù)據(jù)中心中的機(jī)柜、攝像頭等物體的現(xiàn)實(shí)編號(hào)、機(jī)型等信息和對(duì)應(yīng)的三維場(chǎng)景的物體名稱(必須為唯一)并存入數(shù)據(jù)庫(kù),形成現(xiàn)實(shí)場(chǎng)景物體和虛擬場(chǎng)景物體一一對(duì)應(yīng)的關(guān)系,這樣能夠提供一個(gè)動(dòng)態(tài)修改接口保證三維場(chǎng)景物體信息實(shí)時(shí)變化.如當(dāng)對(duì)現(xiàn)實(shí)中數(shù)據(jù)中心的機(jī)柜等物體進(jìn)行移動(dòng)時(shí),只需在編輯器中輸入該機(jī)柜移動(dòng)的水平橫向距離、水平豎向距離、垂直移動(dòng)距離,根據(jù)位置轉(zhuǎn)化算法將對(duì)三維場(chǎng)景里對(duì)應(yīng)物體位置也做出相應(yīng)的改變.
2.3.2 煙感、溫感信息數(shù)據(jù)驅(qū)動(dòng)
對(duì)于煙感,溫感等實(shí)時(shí)顯示,編輯器不做任何數(shù)據(jù)采集工作,它會(huì)通過標(biāo)準(zhǔn)接口WebService服務(wù)遠(yuǎn)程讀取煙感器和溫感器的實(shí)時(shí)數(shù)據(jù)和其所在位置信息,并在通過預(yù)設(shè)數(shù)據(jù)中心上方生成一個(gè)Plane,添加shader腳本,形成一個(gè)云圖.將傳感器位置信息通過位置轉(zhuǎn)化算法獲取在三維可視化場(chǎng)景中的云圖位置坐標(biāo),并依據(jù)溫度高低、煙感信息動(dòng)態(tài)調(diào)整shader腳本里顏色RGB的百分比來實(shí)時(shí)支持云圖的可視化渲染表現(xiàn).
溫感感應(yīng)圖如圖5所示.
圖5 三維場(chǎng)景溫感感應(yīng)圖
2.4 三維場(chǎng)景實(shí)時(shí)顯示數(shù)據(jù)中心監(jiān)控主系統(tǒng)的實(shí)現(xiàn)
由于Unity3D已經(jīng)提供調(diào)用本地授權(quán)攝像頭的接口,當(dāng)我們?cè)诒镜剡\(yùn)行該系統(tǒng)可以方便的查看本地?cái)z像頭的實(shí)時(shí)監(jiān)控信息,這里也不在過多詳述.
但是對(duì)于系統(tǒng)需要遠(yuǎn)程運(yùn)行并查看數(shù)據(jù)中心監(jiān)控主系統(tǒng)的情況,目前并沒有相關(guān)的三維場(chǎng)景遠(yuǎn)程監(jiān)控的公開解決辦法.為了解決這一問題,提出了設(shè)計(jì)了基于UDP傳輸+ffmpeg解碼+合成texture的解決方案.
流程圖如圖6所示.
圖6 遠(yuǎn)程實(shí)時(shí)顯示主控系統(tǒng)流程圖
流程的主要難點(diǎn)有兩個(gè)部分:
一、視頻流轉(zhuǎn)化為每幀數(shù)據(jù).本編輯器使用了ffmpeg進(jìn)行解碼.首先窮舉流格式,找到其VIDEO _TYPE,再找到對(duì)應(yīng)解碼器DECODER,最后從碼流中讀取FRAME數(shù)據(jù).
二、Texture的容錯(cuò)控制.由于系統(tǒng)使用UDP無(wú)連接傳輸,在傳輸時(shí)會(huì)丟失數(shù)據(jù)包,這可能導(dǎo)致某個(gè)Texture無(wú)法繪制或者恢復(fù)順序錯(cuò)誤,需要容錯(cuò)控制.被恢復(fù)的視頻流需要記錄恢復(fù)的上一幀圖像,如某幀恢復(fù)錯(cuò)誤,視頻流需要停留在上一幀進(jìn)行等待,直到后面某幀圖像正確恢復(fù)時(shí)才繼續(xù)執(zhí)行播放.對(duì)于每幀恢復(fù)順序,采用一個(gè)隊(duì)列的FIFO特性來保證視頻流被恢復(fù)的幀順序不會(huì)發(fā)生改變.
本系統(tǒng)借助Unity3D引擎實(shí)現(xiàn)了數(shù)據(jù)中心從物理到邏輯的三維場(chǎng)景可視化,可以直觀簡(jiǎn)單的看到層次化圖片所對(duì)應(yīng)的物體,點(diǎn)擊圖片后向發(fā)送Unity3D消息,通過射線碰撞得到鼠標(biāo)位置信息并實(shí)例化物體.借助物體上所附腳本來編輯物體,最終通過編輯不同模型組建成一個(gè)三維可視化數(shù)據(jù)中心.并將數(shù)據(jù)驅(qū)動(dòng)的環(huán)境監(jiān)控和遠(yuǎn)程顯示主監(jiān)控系統(tǒng)來達(dá)到多種數(shù)據(jù)融合到統(tǒng)一虛擬監(jiān)控窗口,減少數(shù)據(jù)孤島的現(xiàn)象.
數(shù)據(jù)中心可視化場(chǎng)景編輯器運(yùn)行效果如圖7.
圖7 運(yùn)行效果圖
如果將該系統(tǒng)的3D模型替換成其他場(chǎng)景的模型,同樣可以使用該編輯器開發(fā)其他三維可視化場(chǎng)景.
本系統(tǒng)通過提供直觀的,交互性的界面,使用戶可以快速的搭建三維可視化數(shù)據(jù)中心,解決了可視化場(chǎng)景復(fù)用性較差的問題,提高開發(fā)效率.本文所述技術(shù)路線和功能部分并不局限適用于數(shù)據(jù)中心的可視化場(chǎng)景開發(fā),同樣適用于其他場(chǎng)景可視化編輯系統(tǒng)的實(shí)現(xiàn),在三維場(chǎng)景開發(fā)中提供了一定的技術(shù)參考價(jià)值.
1龔昊,張琦.數(shù)據(jù)中心三維可視化管理軟件的設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].北京:北京郵電大學(xué),2012.
2劉柱,李先毅,劉瑾.基于UNITYWeb3D虛擬校園的設(shè)計(jì)和實(shí)現(xiàn).中國(guó)教育網(wǎng)絡(luò),2014,(11):77–78.
3朱惠娟.基于Unity3D的虛擬漫游系統(tǒng).計(jì)算機(jī)系統(tǒng)應(yīng)用, 2012,21(10):36–39.
4任國(guó)棟,陳林華,陶雪峰,方先行.基于Unity3D的虛擬博物館信息三維可視化系統(tǒng).計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(9):86–90.
5張敏,陳云海.虛擬化技術(shù)在新一代云計(jì)算數(shù)據(jù)中心的應(yīng)用研究.廣東通信技術(shù),2009,29(5):35–39.
6 Yang K,Jie J.The research of making scenic wandering system based on Unity 3D.IEEE Workshop on Electronics, Computer andApplications.2014.237–239.
Design of Scene Editor for Three Dimension Visualization of Data Center
WANG Lei1,2,LIAN Dong-Ben2,WANG Jun-Lin3
1(University of ChineseAcademy of Sciences,Beijing 100049,China)
2(Shenyang Institute of Computing Technology,ChineseAcademy of Sciences,Shenyang 110168,China)
3(Dalian University of Technology,Dalian 116024,China)
Aiming at the problem of poor reusability of the 3D visual scene’s repeated development in data center,a visualized editor system for three dimension visualization of data center is proposed.With the aid of 3D engine technology,the system provides a complete,visual and networked environment design platform for managers in the way of simulation,three-dimension and interaction.With high efficiency and flexibility,it can create 3D scene for data center for scene modeling and auxiliary design of the data center.The visual editor is structured on Unity3D engine and web technologies,which not only provides intuitive browser interface and real time environment monitoring system for users, but also solves the problem of remote real-time monitoring of data center monitoring in the way of three dimensional scenes.Users can use it to build a three-dimensional visual scene quickly,reducing duplication of development.Based on other 3D models,this system can be also widely used to build and edit scene of three dimension visualization for other non data center.
data center;three dimension visualization;scene editing;Unity3D;remote monitoring
2016-08-27;收到修改稿時(shí)間:2016-09-29
10.15888/j.cnki.csa.005753