馬青松,熊新國,劉擁軍
(河南職業(yè)技術(shù)學院電子與物聯(lián)網(wǎng)學院 河南 鄭州 450000)
隨著信息技術(shù)的發(fā)展,各類機房設(shè)備和系統(tǒng)不斷增加,采用客戶端軟件或瀏覽器查看機房設(shè)備運行狀態(tài),機房運維管理部門不能及時獲取機房資源和報警信息[1]。移動應(yīng)用的普及,也為機房運維系統(tǒng)注入新的活力。機房運維移動應(yīng)用的種類也從原生APP 應(yīng)用逐漸向Android、IOS、微信小程序、H5 等多種類型全面發(fā)展。眾所周知,原生方式開發(fā)應(yīng)用需要不同的生產(chǎn)環(huán)境和不同的語言進行開發(fā),如Android APP 需要采用Android Studio 開發(fā)工具,編程需要采用Java 或Kotlin 語言,IOS APP 需要采用Xcode、iPhone Simulator 開發(fā)工具,編程語言采用Object-C 或Swift 開發(fā)語言[2]。原生開發(fā)因為測試和應(yīng)用環(huán)境的不同,存在適配難、開發(fā)成本高、效率低、用戶體驗差,跨平臺應(yīng)用開發(fā)一次開發(fā),多端運行,開發(fā)一款機房運維的跨平臺移動應(yīng)用程序?qū)C房運維的信息化建設(shè)具有非常重要的意義。
基于以上背景,本系統(tǒng)以uni-app 和Spring boot 為核心框架,采用HTML5、CSS3、JavaScript、Java 語言和MySQL 數(shù)據(jù)庫,實現(xiàn)一種機房運維系統(tǒng),系統(tǒng)可以查看機房資源、異常、報表和消息通知等。該系統(tǒng)能較大程度上簡化用戶操作,提高機房管理人員的工作效率,達到實時查看機房資源信息、異常等信息的目的。
系統(tǒng)采用前后端分離模式。系統(tǒng)前端通過HBuilderX進行開發(fā)、調(diào)試和發(fā)布,架構(gòu)方案采用MVVM 設(shè)計模式,符合Vue 規(guī)范的uni-app 跨平臺應(yīng)用框架[3]。系統(tǒng)后端通過IntelliJ IDEA 進行開發(fā)和調(diào)試,架構(gòu)方案采用MVC 設(shè)計模式,使用Java 語言的Spring Boot 框架。后端為前端提供API 接口,客戶端可以用Android APP、IOS APP和各類小程序請求數(shù)據(jù)。通過遠程連接阿里云CentOS 服務(wù)器部署Web 服務(wù)器和MySQL 的數(shù)據(jù)庫服務(wù)器。系統(tǒng)框架結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)框架結(jié)構(gòu)
與傳統(tǒng)原生開發(fā)相比,跨平臺移動APP 采用單個代碼庫在不同平臺上運行的方式,不需要為每個平臺單獨開發(fā)獨立APP。軟件開發(fā)人員將單一代碼庫翻譯成多種編程語言,最大限度的重用代碼可以減少系統(tǒng)部署和維護成本,縮短開發(fā)時間和節(jié)省資源[2]。由于采用單一代碼庫,跨平臺移動開發(fā)APP 擁有統(tǒng)一外觀,可確保多個平臺APP 的外觀一致,用戶體驗好。與原生開發(fā)類似,跨平臺移動APP也支持豐富多彩的插件,借助第三方插件可以大大簡化開發(fā)過程。
目前,跨平臺移動應(yīng)用開發(fā)主流解決方案主要有自繪UI 和JavaScrpit 銜接的混合式開發(fā)技術(shù)。采用自繪UI 的混合式開發(fā)技術(shù)的主要代表為Google 推出的開源UI 工具包Flutter,F(xiàn)lutter 擁有豐富的組件、接口,但由于其基于Dart 語言開發(fā)和與原生協(xié)作問題,針對IOS和Android 平臺,F(xiàn)lutter 需要開發(fā)兩套UI 代碼,增加了技術(shù)實現(xiàn)難度[4]。JavaScript 銜接的混合式開發(fā)技術(shù)主要有React Native 和uni-app 等。React Native 是Facebook 開源JavaScript 框架React 在原生移動應(yīng)用平臺的產(chǎn)品,React Native 雖然支持IOS 和Android 平臺,但需要兩套UI 代碼,并且在開發(fā)過程中要與原生協(xié)作,也面臨技術(shù)難度大、實現(xiàn)成本高的問題[5]。
uni-app 是DCloud 團隊采用Vue.js 開發(fā)的國產(chǎn)跨平臺移動應(yīng)用框架,支持發(fā)布到IOS、Android、H5 以及微信小程序、百度小程序、頭條小程序、支付寶小程序等多個平臺,跨平臺能力極強[6]。與Flutter 和React Native相比,uni-app 只需要編寫一套代碼就可以發(fā)布到多個平臺。軟件開發(fā)人員只需要學習Vue,開發(fā)過程不用與原生協(xié)作,學習成本和難度是最低的[7]。uni-app 的社區(qū)活躍度高,具有組件豐富、生態(tài)繁榮、體驗好、平臺能力不受限、速度快、支持原生渲染、支持原生代碼混寫和原生軟件開發(fā)工具包等優(yōu)勢[8]。uni-app實現(xiàn)了“一套代碼、多端發(fā)行”,有效降低開發(fā)和維護成本。
Spring Boot 是Pivotal 團隊在Spring 的基礎(chǔ)上研發(fā)的一套全新的開源框架,其設(shè)計目的是用來簡化應(yīng)用的搭建和開發(fā)過程[9]。與Spring 應(yīng)用相比,由于Spring Boot框架去除大量的XML 配置文件和高集成第三方庫配置,大部分的Spring Boot 應(yīng)用只需要少量的配置代碼,大大簡化了依賴管理,因此可以使開發(fā)者更加專注于業(yè)務(wù)邏輯,淡化配置代碼,深受軟件開發(fā)人員喜愛,是目前后端開發(fā)的主流技術(shù)[10]。
MySQL 是由瑞典MySQL AB 公司開發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),目前屬于Oracle 旗下產(chǎn)品。MySQL 具有體積小、速度快、成本低、跨平臺、兼容性好、開放源碼等特點。MySQL 數(shù)據(jù)庫目前是互聯(lián)網(wǎng)、社交系統(tǒng)、各類應(yīng)用軟件等系統(tǒng)的常見技術(shù)選擇。MySQL 數(shù)據(jù)庫是與Java、Python、PHP 等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng)[11]。
基于uni-app 的機房運維管理系統(tǒng)的總體功能設(shè)計如表1所示。包括總覽模塊、資源模塊、異常模塊、報表模塊、消息模塊和個人信息模塊。
表1 系統(tǒng)總體功能
2.1.1 總覽模塊
總覽模塊包括系統(tǒng)概覽、異常總覽和路由切換功能。用戶身份認證及授權(quán)成功后,默認展示總覽模塊,系統(tǒng)概覽功能采用柱狀圖展示網(wǎng)絡(luò)設(shè)備、服務(wù)器、硬件資源、軟件資源、機房設(shè)備正常和異常數(shù)量;異常總覽功能采用餅圖展示災(zāi)難、嚴重、一般、警告、信息各級別異常的數(shù)量和比例;路由切換功能可以切換至資源、異常、報表和消息模塊。
2.1.2 資源模塊
資源模塊包括資源列表頁面和資源詳情頁面。資源模塊列表頁面、異常模塊列表頁面、報表模塊列表頁面、消息模塊列表頁面均默認展示20 條資源信息,用戶通過上拉操作進行數(shù)據(jù)刷新,下拉操作進行數(shù)據(jù)分頁加載。資源模塊列表頁默認展示資源序號、資源名稱、資源健康度,健康度采用灰、紅、黃、綠四色分級方式;資源類型有網(wǎng)絡(luò)設(shè)備、交換機、路由器、防火墻、軟件資源、數(shù)據(jù)庫、中間件、云服務(wù)器等,輸入關(guān)鍵字和資源類型模糊查詢。通過點擊某條資源信息,進入到資源詳情頁面。資源詳情包括資源信息、資源指標、CPU、內(nèi)存、磁盤、接口、關(guān)鍵端口和關(guān)鍵進程功能。資源信息展示資源名稱、管理IP 等信息,資源指標展示資源名稱和取值結(jié)果。
2.1.3 異常模塊
異常模塊包括異常列表頁面和異常詳情頁面。異常列表頁面默認展示異常指標和異常級別,異常級別采用紅、橙、黃三色分級方式;采用輸入關(guān)鍵字和選擇異常時間段模糊查詢異常列表。通過點擊某條異常信息,進入到異常詳情頁面。異常詳情頁面包括異常信息和指標閾值功能。異常信息展示資源名稱、子資源名稱、指標名稱、是否恢復、持續(xù)時間、異常級別、異常次數(shù)、異常描述等字段。指標閾值通過表格展示異常級別、比較方式、閾值和異常過濾字段。
2.1.4 報表模塊
報表模塊包括報表列表頁面和報表詳情頁面。報表列表默認展示20 條報表數(shù)據(jù),采用輸入關(guān)鍵字和選擇報表時間段模糊查詢報表。通過點擊某條報表信息,進入到報表詳情頁面。報表詳情采用表格方式展示報表中資源信息和異常信息。
2.1.5 消息模塊
消息模塊包括消息列表和消息詳情頁面。消息列表默認展示20 條消息數(shù)據(jù),采用輸入關(guān)鍵字模糊查詢消息。消息狀態(tài)有已讀和未讀狀態(tài),通過點擊某條消息信息,進入到消息詳情頁面。消息詳情展示消息的發(fā)布時間、發(fā)布人和詳細描述。
2.1.6 個人信息模塊
個人信息模塊分為我的頁面和登錄頁面,用戶輸入服務(wù)器地址、用戶名和密碼授權(quán)登錄,我的頁面展示用戶名、部門、郵箱和聯(lián)系方式信息。
本系統(tǒng)使用MySQL 數(shù)據(jù)庫。根據(jù)軟件功能列表,主要數(shù)據(jù)表設(shè)計如下:資源表(tb_resource)記錄資源信息,包括資源ID、資源名稱、管理IP、資源類型、資源地域、廠商、健康度、可用率等。異常表(tb_exception)記錄異常信息,包括異常ID、異常指標、異常級別、異常次數(shù)、異常指標、異常時間、異常描述等。報表(tb_sheets)記錄生成日常報表信息,包括報表ID、報表日期、報表資源信息、報表異常信息等。消息表(tb_messages)記錄消息信息,包括消息ID、消息日期、消息狀態(tài)、消息詳情等。用戶表(tb_user)記錄用戶信息,包括主鍵ID、用戶名、部門、聯(lián)系方式、郵箱等。
基于機房運維管理系統(tǒng)的設(shè)計,系統(tǒng)前端采用uniapp 和Spring Boot 開發(fā),uni-app 主要用來數(shù)據(jù)展示,Spring Boot 用來邏輯處理和開發(fā)接口,實現(xiàn)總覽模塊、資源模塊、異常模塊、報表模塊、消息模塊和個人信息模塊。開發(fā)環(huán)境和編程環(huán)境如表2所示。
表2 系統(tǒng)開發(fā)環(huán)境
首先管理員賬號“admin”在登錄頁面分別輸入服務(wù)器地址、用戶名和密碼,登錄成功并跳轉(zhuǎn)至總覽頁面,總覽頁面展示系統(tǒng)概覽和異??傆[,可以Tab 切換,點擊系統(tǒng)概覽柱狀圖出現(xiàn)當前類型的正常和異常設(shè)備數(shù)量,通過點擊資源、異常、報表和消息圖表,分別進入到對應(yīng)模塊,也可以通過底部導航訪問模塊??傆[頁面如圖2所示。
圖2 總覽頁面
資源列表頁面默認展示20 條資源數(shù)據(jù),可以通過點擊下拉框,底部彈出下拉選項,檢索相應(yīng)類型的資源,點擊某條資源,進入到資源詳情頁面。資源頁面如圖3所示。在異常列表頁面點擊某條異常,進入到資源詳情頁面。異常頁面和異常詳情頁面如圖4所示。
圖3 資源列表頁面
圖4 異常詳情頁面
報表列表頁面可以按照本月、本周、本日、上周、全部等方式查詢報表,點擊某條報表,進入到報表詳情頁面。消息列表頁面按照時間順序展示最新20 條消息,消息未被點擊,消息狀態(tài)為未讀,點擊某條消息,進入到消息詳情頁面,消息狀態(tài)變更為已讀。報表列表頁面和消息列表頁面分別如圖5、圖6所示。
圖5 報表列表頁面
圖6 消息頁面
針對機房運維管理中存在的問題,前端采用uni-app框架,后端采用Spring Boot 開發(fā)了一種機房運維管理系統(tǒng),主流框架為系統(tǒng)的實現(xiàn)提供了良好的技術(shù)保障。實現(xiàn)了用戶登錄、總覽、資源、異常、報表和消息模塊,最后對系統(tǒng)進行測試,驗證了該系統(tǒng)能較大程度上簡化用戶操作、增強系統(tǒng)安全性,系統(tǒng)可以查看機房資源信息、異常信息、報表信息和消息通知等,系統(tǒng)數(shù)據(jù)傳輸穩(wěn)定性好,應(yīng)用軟件人機操作界面穩(wěn)定易用。