杲靖,張建兵,潘群,袁曉宇
(常州工學院計算機信息工程學院,江蘇 常州 213032)
高校計算機機房承擔著計算機相關專業教學、課程、實踐及考試等任務,目前大多高校計算機機房仍采用人工手動粗放管理,管理員對機房內所有計算機、電燈等用電設備進行統一開關[1]。然而在機房內上課的學生數量往往小于機房內計算機數量,導致無人使用的空閑計算機造成能源浪費。與此同時,人工管理存在著安全隱患與資源浪費、管理員管理機房費時費力、學生使用機房效率低下等諸多弊端。在物聯網技術飛速發展的今天,傳統的機房管理模式已無法滿足要求。
由于機房內各設備通信協議不盡相同,傳統的物聯網框架存在著系統安裝煩瑣、新設備接入困難、整體系統難以更新換代的弊端。因此,人們運用物聯網和微服務架構等技術,設計出便于安裝部署的基于微服務框架的高校機房管理系統,實現對機房的自動控制和反饋控制,不僅可以檢測機房的使用情況,確保學生上課前機房提前開鎖,進入機房后及時供電,還可以識別計算機是否有學生使用,實現學生離開后斷電等功能。最終實現節能省電,規避用電風險,提高學生課前準備效率,從而改善學生學習環境,促進學生學習效率,推動我國人才培養、資源利用最大化,實現低碳減排、節能環保新目標[2-4]。
基于微服務架構的高校機房管理系統的主要功能分為五個功能模塊,分別是:核心服務模塊、支持服務模塊、設備服務功能模塊、應用服務功能模塊、云平臺功能模塊,其中核心服務模塊、支持服務模塊、設備服務模塊、應用服務模塊部署在邊緣網關中,云平臺功能模塊部署在云平臺上。各模塊中的服務均以微服務方式實現,它們之間通過REST API 或者消息總線進行通信,系統功能模塊如圖1所示。

圖1 系統功能框圖
微服務架構是將應用程序結構化為松散耦合的服務集合。這些服務是小型的、獨立部署的,并且可以通過網絡進行通信。每個服務都有自己的獨立的業務功能,并且可以獨立地進行開發、部署和擴展。微服務架構具有服務自治、輕量級、可擴展性、可復用性等特點,微服務之間通過API 進行通信,目前主要的通信方式有REST API、消息總線等[5-6]。本系統中采用REST API 和MQTT 相結合的方式進行微服務之間的通信,其中查詢、配置、命令等通過REST API 通信,時序數據則在MQTT 中進行傳輸。本系統的微服務架構如圖2所示。

圖2 微服務架構圖
核心服務模塊主要包含核心數據微服務、核心元數據微服務、核心命令微服務、注冊配置微服務等,其主要提供數據采集與存儲、系統配置信息存儲與管理、設備管理與操作統一接口調用、微服務模塊注冊配置等功能。核心服務模塊是連接設備服務與其他服務的核心,在系統中具有“承上啟下”的功能。
支持服務模塊主要有任務調度微服務以及開源組件eKuiper,利用這兩種支持服務,可以實現規則任務、定時任務等功能,大大提高了整個系統規則調度能力。eKuiper 可以利用系統中的消息總線,對數據進行過濾清洗,同時根據設定的規則執行相應的操作。
在本系統中,各種設備錯綜復雜,設備協議也不盡相同,因此每種設備協議都需要有一個對應的設備微服務與設備進行交互,再通過核心服務模塊,與其他微服務進行通信。同時各種設備服務也遵循了統一規則提供REST API 接口,方便其他微服務直接進行調用。
目前所設計的設備微服務包括:
1)Modbus 設備微服務:電磁鎖及電表采用Modbus 協議,用于控制機房門禁及電源,另外還可以讀取整個機房的用電量以及用電功率,幫助更好地判斷機房使用情況。
2)掃碼器設備微服務:采用自定義TCP 協議,可以掃描二維碼,以便系統識別訪客身份,主要用于學生預約進入機房的情況。
3)計算機管理設備微服務:采用自定義協議,實現對電腦開關機的控制。為了便于管理,該服務部署在機房中的教師機上,同時所有的學生機將作為設備通過教師機上的計算機管理設備微服務接入到系統中,實現對機房內所有計算機的管理,包括遠程開關機、遠程監控等。
4)LoRa設備微服務:由于燈控開關和環境傳感器數量較多,需要多點部署,因此它們均采用了Lo-RaWAN無線協議,部署方便、成本低、覆蓋范圍廣,無須布置中繼器。另外環境傳感器采用Class A 模式,能耗更低,可長時間使用電池供電。LoRa設備服務實現了LoRaWAN網關橋功能,可以連接管理LoRaWAN設備、解析轉換LoRaWAN協議數據。
5)攝像頭設備微服務:采用ONVIF協議與攝像頭設備進行通信,該協議規范描述了網絡視頻的模型、接口、數據類型以及數據交互的模式,可以讓不同廠商所提供的產品,均通過統一的語言來進行交流,增加了協同性和靈活性[7]。因此,本系統可以將機房中原有的攝像頭快速接入到系統中,從而降低系統部署成本。攝像頭設備微服務會定時操作所有攝像頭抓拍照片,通過消息總線傳遞給其他微服務處理并上傳至云平臺。
設備微服務提供的RESP API如下:
獲取微服務配置API:

方法GET結果:result(string:<required>)-返回配置信息;路徑/config數據格式application/json
通過命令名稱請求指定設備數據API:

方法GET參數:name(string:""):設備名稱command(string:""):命令名稱結果:result(string:<required>)-返回獲取到的數據路徑/device/name/{name}/{command}數據格式application/json
通過命令名稱操作指定設備API:

方法PUT路徑/device/name/{name}/{command}數據格式application/json參數:name(string:""):設備名稱command(string:""):命令名稱數據:param(string:json):命令參數結果:result(string:<required>)-返回操作結果
2.4.1基礎應用微服務
基礎應用微服務主要是初步處理相關設備數據,并為其他應用微服務提供數據接口,同時建立與云平臺的MQTT 連接。基礎應用微服務流程如圖3 所示,其主要功能如下:

圖3 基礎應用微服務流程圖
1)設備影子:為了解決設備異常斷開連接、多應用同時獲取同一設備數據等問題,采用設備影子功能對設備數據進行同步,這種同步是一種雙向同步,設備影子的配置數據可以同步給設備,設備的傳感數據也可以同步給設備影子。
2)設備配置緩存:由于其他應用服務在運行時需要及時并多次獲取當前網關所接入設備信息,考慮到應用程序運行的實時性,基礎應用需要提供設備配置緩存,其中包括設備服務緩存、設備描述緩存、設備信息緩存。
3)云平臺連接:建立邊緣網關與云平臺的MQTT連接,接收云平臺的消息并進行處理,同時可將消息轉發給其他微服務進行處理。另外其他微服務產生的數據也可由基礎應用微服務轉發至云平臺。
2.4.2算法應用微服務
算法應用微服務主要實現的功能是對攝像頭設備微服務中抓拍的照片進行識別,統計學生人數以及分布情況,并判斷每臺計算機是否有人使用。當判斷出某臺計算機無人使用時,可通過消息總線通知其他微服務進行處理。本系統基于MobileNetV3模型進行訓練并使用OpenVINO 工具套件部署在邊緣網關中。MobileNetV3 是一種輕量級的深度學習網絡模型,特別適合用于移動和嵌入式視覺應用[8]。在訓練模型時本系統使用TensorFlow Hub 中的預訓練MobileNetV3模型來創建模型,并且使用預訓練的權重進行遷移學習,訓練時同時對人體和計算機進行學習。訓練完成后,使用OpenVINO 的Model Optimizer 工具將訓練好的模型轉換成OpenVINO 的Intermediate Representation(IR)格式,之后便可以在具有OpenVINO環境的邊緣網關中進行推理使用。
2.4.3計算機機房管理應用微服務
計算機機房管理應用服務主要是處理與系統相關的業務數據,例如課表導入與解析、定時任務創建、規則任務創建等。在對機房課表解析后,可形成課表內時間的定時任務,在上課前后,可對門鎖、電源、燈控等進行操作,滿足大批量學生的上課需求。當有預約的學生或有權限的教師臨時使用機房時,可通過規則任務實現刷卡進門、打開電源等功能。
在機房需要上課時,課前會通過計算機管理微服務將所有計算機打開,學生全部落座后可能會存在部分計算機無人使用的情況,此時會等待算法應用微服務反饋無人使用的計算機,待確認后自動將該計算機關閉。另外微服務還可以實現根據光照度等環境數據自主判斷是否需要開關燈。以上自動化措施可方便管理員對機房進行管理,并能有效地節約能源消耗。
計算機機房管理應用微服務流程圖如圖4所示。

圖4 計算機機房管理應用微服務流程圖
云平臺功能模塊主要包含展示Web 和MQTT 服務器,邊緣網關連接至MQTT 服務器與云平臺進行通信。為了驗證系統設計的有效性,部署一套機房管理系統進行測試,測試過程中通過云平臺展示頁面觀察測試結果。首先對定時任務進行測試,導入課表后,在上課時間前15分鐘門禁正常打開、電源正常打開、燈控正常打開,機房內所有計算機全部開機。當機房內亮度達到400Lux 后,機房內燈光關閉,亮度仍達到300Lux以上,符合機房亮度標準。通過云平臺展示頁面可觀察到,算法應用微服務可正常識別到人體存在,并能統計人數,另外根據識別到的人體和計算機,可判斷每臺計算機是否有人在使用,若無人使用超過5分鐘將會自動關閉計算機。測試過程中云平臺展示圖如圖5所示。

圖5 云平臺展示圖
在本研究中,人們設計并測試了一種基于微服務架構的機房管理系統,各功能模塊采用微服務架構進行部署,微服務之間通過REST API 或消息總線進行通信。該系統利用物聯網技術實現了對機房的自動控制和反饋控制。系統可以實現定時打開門禁、電源、燈控,根據機房內亮度自主開關燈,無人使用計算機時自動關機。這些自動化措施可以方便管理員對機房進行管理,還可以實現節能省電,規避用電風險,提高學生學習效率,推動人才培養和資源利用的最大化。總的來說,基于微服務架構的高校機房管理系統成功地解決了傳統機房管理模式中存在的問題,提高了機房管理的效率和效果,為未來機房管理提供了新的可能性。