前言:尋找寫作靈感?中文期刊網用心挑選的機房動力環境監控系統設計研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:由于目前C/S架構的基于虛擬現實技術的動力環境監控系統模塊之間耦合度高,開發調試工作量大。針對這種情況,提出一種基于虛擬現實技術的機房動力環境監控系統設計方案。通過3dsMax進行設備建模,并用Photoshop構建貼圖;在Unity3D上導入模型和貼圖搭建虛擬機房場景;使用Qt開發客戶端與服務器端程序,并通過TCP/IP協議實現虛擬場景與客戶端控制界面的交互;最終完成整個系統的開發。經測試表明:設計方案能夠降低系統各部分的耦合度,減少開發調試的工作量。為基于虛擬現實技術的動力環境監控系統的開發提供了一些參考。
關鍵詞:C/S架構;虛擬現實技術;動力環境監控系統;
1引言
機房動力環境監控系統是一種對機房動力、環境、消防等設備的數據進行實時集中監控管理的系統。機房工作人員可以通過系統實時查看機房設備的運行情況,同時也能通過短信、語音、郵件等方式告知機房管理人員設備報警情況以達到遠程監控的目的。目前,二維機房動力環境監控系統仍然占有主要市場。其設備數據大多是以圖表的方式展現給用戶。雖然能直觀地展現參數趨勢,但是發生設備報警或者需要對設備參數進行調整時則很難馬上確定設備的具體位置,給機房管理人員帶來極大的不便。虛擬現實通過各種感官作用于用戶,使用戶產生身臨其境的感覺。隨著虛擬現實技術的逐漸成熟,二維機房動力環境監控系統紛紛向虛擬現實機房動力環境管理系統轉變。虛擬機房場景可以將多源信息融合在一起,直觀地向用戶展示各種機房設備的實際運行情況,同時交互式的三維動態視景和設備的實體行為系統仿真也能使用戶更加高效地對機房設備進行管理[1-4]。文獻[4]中指出C/S架構的基于虛擬現實技術的機房動力環境監控系統升級成本較高,過程復雜,需要重新配置整個系統,并且調試工作量較大。因此,本文針對此問題提出了一個設計方案。用于降低虛擬場景界面與客戶端、客戶端與服務器端之間的耦合度,減少程序的調試量并加快系統的開發速度。
2系統總體方案設計
2.1系統需求分析
機房負責大量的數據儲存與處理,并且365(天)×24(小時)不間斷運行,所以對于數據中心機房動力與環境設備的監控就顯得至關重要。機房動力環境監控系統需要實現的功能有:(1)動力設備監控(如:UPS、配電柜等);(2)環境設備監控(如:空調系統、新風系統、溫濕度、漏水、新風機等);(3)消防監控(如:消防控制器、煙感探測器等);(4)安防監控(如:門禁系統、視頻監控系統等);(5)人員管理。虛擬現實機房場景需要根據實際機房結構以及設備的具體位置制作。其主要功能有設備的實時數據的顯示、當前設備報警的顯示,以及一些人機交互的功能(如:視角切換、設備類數據顯示切換、自動巡檢等)。
2.2系統架構設計
基于虛擬現實技術的機房動力環境管理系統采用C/S架構(即客戶端/服務器端架構),系統具體可分為:用戶層、業務邏輯層、數據層。用戶層表現為可交互的虛擬機房場景,通過TCP/IP協議向業務邏輯層傳遞用戶的業務請求,如設備參數修改、歷史信息查詢等;當接收到業務層返回的數據時,系統將這些數據實時地顯示在虛擬機房的實際位置上。業務邏輯層表現為整個系統的數據處理中樞并且連接著用戶層與數據層。業務邏輯層包含了:服務器、系統功能模塊、數據采集與處理模塊。該層的主要功能是根據用戶層返回的業務請求調取數據層中的數據并處理成用戶層需要顯示的數據形式返回給用戶層以實現不同的場景功能(查詢歷史數據、顯示機房設備參數狀態等),以及處理數據采集模塊采集上來的數據,根據數據層的需要處理后存入到數據層中。數據層主要包含了機房設備的配置信息、虛擬機房模型信息、用戶管理信息、歷史數據信息等。數據層采用了流行的MySQL數據庫作為數據管理系統。使用MySQL數據庫能大大降低開發的難度,提高系統的兼容性,保證系統運行的穩定性[5,6]。數據層通過MySQL數據庫驅動與業務邏輯層進行交互。并根據業務層的不同業務請求,返回指定的數據參數??蛻舳孙@示界面和數據采集模塊由Qt開發平臺(跨平臺C++圖形用戶界面應用程序開發框架)開發,由于Qt擁有直觀、強大的API[7],所以對于MySQL數據庫的操作便捷,開發方便。虛擬機房場景界面不直接向數據庫獲取數據,而是通過TCP/IP協議與客戶端顯示界面交互,通過這種方式減少虛擬機房場景需要獲取及處理的設備數據,簡化虛擬機房場景界面程序,提高虛擬場景界面的顯示效果和操作體驗。
2.3開發流程設計
基于虛擬現實技術的機房動力環境管理系統可分為兩部分分別是客戶端(虛擬機房場景界面和客戶端控制界面)和服務器端(數據采集模塊)。
(1)客戶端開發流程
①采集各種機房設備的實物圖和實際尺寸。②利用3dsMax建模軟件對數據中心機房墻體、機柜、門體、精密空調、溫濕度、電量儀等設備進行建模。根據建好的設備模型的UV圖,用Photoshop制作模型貼圖。③將制作好的模型導入Unity3D游戲引擎中,貼上制作好的貼圖。根據實際的數據中心機房構造搭建虛擬機房場景。④編寫與模型對應的C#腳本以實現界面人機交互、數據顯示以及報警信息顯示等功能。⑤根據與虛擬場景之間的通訊,用Qt開發客戶端控制界面程序,并測試客戶端運行情況。
(2)服務器端程序開發流程
①根據整體系統的功能設計數據庫結構。②根據設備的通訊協議使用Qt開發服務器端程序(數據采集模塊)。最后,測試客戶端與服務器端整體系統的運行情況,并完善人機交互與數據顯示功能,最終完成基于虛擬現實技術的機房動力環境監控系統的開發,打包系統。
3動力環境監控系統實現
3.1機房場景虛擬實現
(1)機房設備三維建模
機房設備模型的建立使用的是3dsMax建模軟件。3dsMax是一種以三維動畫技術作為基礎的圖像渲染和制作軟件。當前,虛擬場景建模中3dsMax的使用最為廣泛,例如在游戲制作、動漫制作、建筑設計等廣泛領域內都得到了廣泛的應用。由于3dsMax中的單位長度與Unity3D中的單位長度不同,所以在用3dsMax搭建機房設備與環境模型時需要注意尺寸轉換的比例。這里3dsMax在建模時需要選擇厘米(cm)為單位,這樣模型在Unity3D中尺寸長度1就為1厘米??紤]到數據中心機房虛擬場景在加載時需要加載的設備和環境的數量,若模型的細節制作的比較細致,那么每個模型的大小會相對比較大,界面加載的時間相應的也會變得很長,同時對系統的CPU和顯卡的負擔也會比較大,在做界面操作的時候很容易出現卡頓的現象,用戶體驗就大打折扣。因此,在界面中有動畫動作的設備(如:機柜、冷通道移門等),按照實際尺寸用長方體等多面體來表示,盡量減少模型的細節,如圖3(a)所示;部分不需要在界面有動畫動作的設備(如:UPS、精密空調、服務器、工控機等)按照實際尺寸采用長方體代替表示,同時也盡量減少模型的細節,如圖3(b)所示。
(2)機房設備真實化立體呈現
機房設備建模完成以后,模型外表并不美觀,同時有些形狀類似的模型甚至無法僅從外表做區分。所以機房設備模型貼圖的制作就顯得很重要。首先將建立的模型通過UV展開,展開模型時需要注意不破壞模型結構的同時要利于貼圖的繪制,還要最大限度利用UV坐標格,尤其注意要在模型隱蔽的地方進行UV接縫的拆分[9]。如圖4所示。拆分完之后需要用棋盤格來檢測UV縮放比例是否正確,即判斷棋盤格的形狀是否有太大的扭曲。然后在Photoshop中根據導出的UV位圖繪制設備模型的貼圖。在Photoshop中導入UV位圖后將實物圖片拆分填入,注意接縫處的紋理銜接。(3)虛擬機房場景搭建數據中心機房虛擬場景的搭建使用的是Unity3D游戲引擎。Unity3D具有強大的跨平臺開發能力與絢麗的3D渲染效果。目前Unity3D已經可以橫跨25個主流游戲平臺,并且應用領域相當廣泛,在建筑、醫療、工業、娛樂、虛擬現實、動畫、電影和藝術等行業都可以看到Unity的身影[11]。搭建虛擬機房場景時,首先Unity3D場景中先根據機房的平面圖繪制機房地板和墻體,地板和墻體也同樣使用貼圖的形式;然后需要將3dsMax導出的FBX文件格式的模型,以及模型對應的貼圖導入Unity3D項目中;然后將貼圖制作成材質球加載到模型;然后將設置好的模型創建預設,這樣就簡化了模型的使用;最后根據機房設計圖紙將模型放置到相應位置就完成了虛擬機房的場景搭建。
3.2服務器端設計
服務器端程序主要實現對機房動力設備、環境設備、消防設備、安防設備的數據進行實時采集,根據設備通訊協議解析采集的數據,并保存到數據庫中指定的數據表中,等待被客戶端程序查詢。服務器端程序的開發方式為主程序加動態鏈接庫的形式。動態鏈接庫的功能是解析各種設備返回的實時數據,并分析處理成所需的數據形式,再存儲到數據庫中。動態鏈接庫只需根據不同設備協議進行修改就能處理不同設備的數據采集。這樣的開發方式加快了程序的開發速度。
3.3客戶端設計
客戶端由兩部分組成分別是虛擬機房場景和客戶端控制界面。客戶端控制界面主要實現的功能為用戶管理、報警設置、歷史數據以及與虛擬場景界面的交互功能。虛擬場景交互的功能主要有場景視角切換、設備數據顯示切換、報警顯示等??蛻舳丝刂平缑嫱ㄟ^TCP/IP協議與虛擬機房場景做數據通訊。根據用戶的選擇將需要顯示的設備實時數據傳輸給虛擬機房場景,虛擬機房場景就能根據指令以特定視角展示設備數據。如圖8所示客戶端控制界面向虛擬機房場景發送了查看溫濕度設備數據指令,虛擬場景界面則將接收到的溫濕度數據以特定的視角實時顯示出來。同樣,虛擬機房場景中對設備進行操作時,虛擬機房場景也能通過TCP/IP協議向客戶端控制界面獲取相應的設備數據。如圖9所示在虛擬機房場景中點擊UPS設備并顯示設備的實時數據。
4運行調試分析
運行調試測試了虛擬機房交互功能、客戶端控制界面與虛擬機房的通訊,以及設備數據獲取情況。虛擬機房交互功能測試是通過鼠標左鍵右鍵調整不同的視角查看機房的各種設備,通過點擊設備來查看設備的運行情況;客戶端控制界面通訊測試是通過點擊客戶端控制界面上的功能按鈕控制虛擬機房場景顯示各種設備的位置、運行狀態及實時數據;設備數據獲取則是通過比對采集到的數據是否與實際設備的數據相同,并測試數據獲取的成功率。經過測試,基于虛擬現實技術的機房動力環境監控系統符合系統的設計要求。
5結論
借助Unity3D游戲引擎、3dsMax、Photoshop構建了虛擬數據中心機房場景。通過TCP/IP協議實現虛擬現實場景與客戶端控制界面的數據交互,減少了虛擬機房場景需要處理的數據量。通過模塊化的方式開發服務器端程序,加快了程序開發的速度。因此降低了虛擬場景界面與客戶端、客戶端與服務器端之間的耦合度,減少了系統開發和調試的工作量。這種基于虛擬現實技術的機房動力環境管理系統的設計方案為虛擬現實動力環境管理系統的開發提供了一種參考。
參考文獻(References)
[1]張鳳軍,戴國忠,彭曉蘭.虛擬現實的人機交互綜述[J].中國科學:信息科學,2016,46:1711-1736.
[2]顧君忠.VR、AR和MR-挑戰與機遇[J].計算機應用與軟件,2018,35(3):1-7;14.
[3]帥明,楊得耀,敖令攀,等.機房動力環境監控系統研究綜述[J].軟件導刊,2015(3):4-7.
[4]華磊.基于B/S架構的IDC機房3D監控管理系統的設計與實現[D].重慶:重慶郵電大學,2017.
[5]甘長春,孟飛.MySQL數據庫管理實戰[M].北京:人民郵電出版社,2019.
[6]王芳.網站開發中數據庫的管理者——MySQL[J].電子技術與軟件工程,2014(16):214.
[7](加)布蘭切特,(英)薩默菲爾德.C++GUIQt4編程:第二版[M].北京:電子工業出版社,2013.
[8]倪燁.3DSMAX在虛擬場景建模中的應用分析[J].無線互聯科技,2016(22):142-143.
[9]尚冰.3D游戲中法線貼圖技術的應用[J].科技傳播,2014(14):163-164.
[10]曹瑜,郭立萍,杜紅燕,等.卡通風格3D游戲場景設計制作技術[J].軟件,2015(3):22-25.
作者:孫卓晟 彭來湖 倪利明 胡旭東 單位:浙江理工大學浙江省現代紡織裝備技術重點實驗室 杭州勤誠微電子科技有限公司