舒暉
(成都醫(yī)學(xué)院 現(xiàn)代教育技術(shù)中心,四川 成都 610500)
近些年我國高校紛紛進(jìn)行信息化智慧校園的建設(shè)[1],其目的為使得教職工和學(xué)生在教學(xué)、生活和工作各方面更加簡便快捷,通過主動服務(wù)和整合校園資源等方式提高用戶體驗(yàn)[2-4]。但目前校園各系統(tǒng)往往均為滿足教職工或?qū)W生在某一方面的需求而研究開發(fā),每個系統(tǒng)的指向性較為明確,在后續(xù)系統(tǒng)升級過程中也為圍繞這一指向性而添加功能,如果出現(xiàn)某些與原有系統(tǒng)功能差別較大的需求,則需開發(fā)一套新的系統(tǒng)[5-7],長此以往會導(dǎo)致系統(tǒng)的數(shù)量增加,造成各個系統(tǒng)之間的數(shù)據(jù)交換困難,使得學(xué)校信息化系統(tǒng)錯綜復(fù)雜[8]。基于此,本研究在信息化校園建設(shè)的背景下,基于虛擬化容器引擎和持續(xù)化集成等技術(shù),構(gòu)建了一套可用整個學(xué)校系統(tǒng)持續(xù)建設(shè)的平臺系統(tǒng)。
為了設(shè)計一套可維護(hù)、可拓展、高性能的系統(tǒng),本平臺分為數(shù)據(jù)中心、應(yīng)用部分、持續(xù)集成部分和核心系統(tǒng)4個部分,平臺架構(gòu)如圖1所示。
圖1 平臺系統(tǒng)整體架構(gòu)圖
所有部分的運(yùn)行環(huán)境均為Docker[9],用戶可以利用PC端或移動端通過HTTP通信[10]訪問核心系統(tǒng),核心系統(tǒng)分為用戶信息、應(yīng)用信息和代碼開發(fā)規(guī)范3個部分。然后利用Jenkins Client通信與持續(xù)集成部分連接,持續(xù)集成部分包含應(yīng)用部署、應(yīng)用測試、應(yīng)用翻譯和應(yīng)用構(gòu)建等。持續(xù)集成部分利用docker.sock通信[11]連接應(yīng)用部分,其中每個應(yīng)用占用一個Docker容器。應(yīng)用通過HTTP通信與學(xué)校數(shù)據(jù)中心系統(tǒng)連接。
核心系統(tǒng)的通信采用Spring Boot框架[12]和HTTPS通信,其中Spring MVC的請求過程如圖2所示。
圖2 Spring MVC請求過程
在請求過程中請求信息號會傳遞至Dispatcher Servlet前端控制器,然后可分別傳遞至Handler Mapping、View Re-solver、視圖渲染和Handler,其中傳遞至Handler Mapping后經(jīng)過處理會進(jìn)一步傳遞至Handel Execution Chain,然后經(jīng)過解析到達(dá)Handel,經(jīng)過業(yè)務(wù)邏輯分析后被傳輸至Model And View,其為MVC底層的對象的底層對象,主要分為View和Model兩個部分。然后通過解析器得到View,進(jìn)而進(jìn)行視圖渲染和響應(yīng)。
為確保應(yīng)用間互不干涉,本系統(tǒng)將每個應(yīng)用運(yùn)行在單獨(dú)的Docker容器中,保證應(yīng)用間的相互獨(dú)立。對于應(yīng)用的訪問,其通過宿主的容器開放端口和IP地址。本系統(tǒng)的端口利用分配和動態(tài)監(jiān)測的方式以確保應(yīng)用的正常連接訪問和運(yùn)行。
數(shù)據(jù)庫是一個系統(tǒng)進(jìn)行高效開發(fā)的前提和基礎(chǔ)[13],根據(jù)本系統(tǒng)的使用要求,本數(shù)據(jù)庫的E-R圖,如圖3所示。
圖3 系統(tǒng)數(shù)據(jù)庫的E-R圖
手機(jī)App移動端用過HTML5+和MUI進(jìn)行開發(fā),利用HBuilder編譯[14]成iOS和Android應(yīng)用,核心系統(tǒng)與App間通信利用HTTPS協(xié)議。其中選擇HTML5+的原因?yàn)槠溟_發(fā)資源較多、操作較為簡便、用戶體驗(yàn)優(yōu)和二次開發(fā)性能強(qiáng)等優(yōu)點(diǎn)。Web段的通信協(xié)議同樣為HTTPS,其框架開發(fā)選擇Layui[15]。Layui中的layer使用簡便且功能強(qiáng)大,其可以完成一系列的彈層操作從而提高用戶體驗(yàn)。
本系統(tǒng)最重要的模塊之一即為應(yīng)用發(fā)布模塊,其流程圖如圖4所示。
圖4 應(yīng)用發(fā)布的流程圖
用戶需要在認(rèn)證中心進(jìn)行權(quán)限認(rèn)證,如果認(rèn)證成功后即可進(jìn)行應(yīng)用發(fā)布的操作,在用戶發(fā)布時,用戶可以根據(jù)自己的需求選擇應(yīng)用類型,其中包括MySQL應(yīng)用、Python應(yīng)用、Node.js應(yīng)用和Java應(yīng)用。其對應(yīng)的版本分別為MySQL版本、Python應(yīng)用、Node應(yīng)用和JDK/Maven應(yīng)用。其中后三者對應(yīng)的為代碼倉庫地址,MySQL版本對應(yīng)的為初始化SQL語句,然后進(jìn)行應(yīng)用圖標(biāo)和名稱等其他配置信息,最后進(jìn)行發(fā)布。
用戶發(fā)布序列圖如圖5所示。
圖5 應(yīng)用發(fā)布的序列圖
用戶首先進(jìn)行配置發(fā)布應(yīng)用信息,利用平臺界面進(jìn)行解析配置信息,然后在平臺服務(wù)端構(gòu)建XML文件并發(fā)布任務(wù),利用Jenksins建立任務(wù),并在Docker執(zhí)行任務(wù)。建立的任務(wù)可以通過Jenksins返回發(fā)布結(jié)果至平臺服務(wù)端,然后將執(zhí)行結(jié)果傳輸至平臺界面進(jìn)行顯示結(jié)果的發(fā)布。
系統(tǒng)應(yīng)用管理模塊的流程圖如圖6所示。
圖6 應(yīng)用管理的流程圖
在進(jìn)行應(yīng)用管理時首先進(jìn)行權(quán)限認(rèn)證,認(rèn)證成功后進(jìn)入應(yīng)用管理界面,在應(yīng)用列表中選擇對應(yīng)的應(yīng)用可以進(jìn)行更新和應(yīng)用信息的修改。
應(yīng)用更新流程圖如圖7所示。
圖7 應(yīng)用更新的流程圖
該系統(tǒng)應(yīng)用的更新不僅可以對數(shù)據(jù)庫的信息進(jìn)行更新和修改,還可以出發(fā)應(yīng)用持續(xù)集成和流程,通過把原有應(yīng)用全生命周期終止,然后來解決應(yīng)用發(fā)布過程中更新修改應(yīng)用內(nèi)容和版本的問題。
數(shù)據(jù)中心的作用是為發(fā)布的應(yīng)用提供數(shù)據(jù)支持和身份識別,用戶發(fā)布的應(yīng)用使用者為在校師生,應(yīng)用可以識別和區(qū)分不同的用戶從而獲得該用戶的信息,上述信息通過接口的形式獲取。其流程圖如圖8所示。
圖8 數(shù)據(jù)中心的流程圖
在進(jìn)行完權(quán)限認(rèn)證后,進(jìn)入數(shù)據(jù)中心,然后通過接口的使用方式進(jìn)行身份識別和用戶信息的獲取,當(dāng)測試接口成功后即可進(jìn)行應(yīng)用的開發(fā),否則返回上一步。
該系統(tǒng)的主要使用途徑是手機(jī)App客戶端,手機(jī)客戶端功能模塊的流程圖如圖9所示。
首先在認(rèn)證中心進(jìn)行權(quán)限認(rèn)證后進(jìn)入移動端主頁,分別可以進(jìn)行應(yīng)用的添加、應(yīng)用的使用和應(yīng)用的刪除。其中添加應(yīng)用界面還可以通過查詢應(yīng)用列表來獲取應(yīng)用的詳情,然后用戶決定是否進(jìn)行添加。此外,系統(tǒng)還為用戶提供了清除緩存等功能。
應(yīng)用使用的序列圖如圖10所示。
圖10 應(yīng)用使用的序列圖
用戶可以通過查詢得到相應(yīng)的用戶信息,添加系統(tǒng)后,移動端可以更新本地用戶列表的地址、圖表和名稱等信息,當(dāng)用戶使用某個應(yīng)用時,其背后為用戶訪問對應(yīng)應(yīng)用的地址,然后返回給用戶應(yīng)用主頁,從而實(shí)現(xiàn)用戶使用該應(yīng)用的目的。
一般情況下,系統(tǒng)的測試分為功能測試和性能測試兩部分。對于系統(tǒng)的功能測試本文主要對系統(tǒng)的移動端功能、數(shù)據(jù)中心功能、系統(tǒng)模塊功能、應(yīng)用管理和發(fā)布功能進(jìn)行了穩(wěn)定性和完整性的測試,經(jīng)過測試,本系統(tǒng)可以實(shí)現(xiàn)完成設(shè)計功能,系統(tǒng)功能性較好。移動端功能性測試的測試步驟和測試結(jié)果如表1所示。
表1 移動端功能性測試步驟及結(jié)果
為了對系統(tǒng)進(jìn)行性能測試,本研究模擬了50、100、150、200和250人同時對系統(tǒng)進(jìn)行訪問時服務(wù)器的響應(yīng)時間和CPU使用率,測試結(jié)果如表2所示。
表2 系統(tǒng)性能測試
由表2可知,當(dāng)同一時間點(diǎn)的用戶數(shù)達(dá)到250人時,系統(tǒng)的響應(yīng)時間僅為1.996 s,CPU使用率僅為11.55%,說明該系統(tǒng)性能良好,可滿足使用要求。
針對目前學(xué)校信息系統(tǒng)錯綜復(fù)雜的現(xiàn)狀,本研究基于虛擬化容器引擎和持續(xù)化集成等技術(shù),構(gòu)建可持續(xù)集成不同系統(tǒng)的智慧校園開放平臺。本文首先從核心系統(tǒng)設(shè)計、應(yīng)用部分設(shè)計、數(shù)據(jù)庫設(shè)計、移動端和Web端設(shè)計等角度對系統(tǒng)的構(gòu)建設(shè)計進(jìn)行了詳細(xì)介紹,并以應(yīng)用發(fā)布模塊、應(yīng)用管理模塊、數(shù)據(jù)中心系統(tǒng)功能模塊和移動端功能模塊等關(guān)鍵模塊為例闡述了其設(shè)計流程和實(shí)現(xiàn)方式。最后通過功能和性能測試,驗(yàn)證了該系統(tǒng)的功能完整性和性能可靠性。