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