關(guān)鍵詞:信息管理;選課管理;Spring Cloud微服務(wù);SpringBoot技術(shù);前后端分離
0 引言
在高校的日常教務(wù)管理工作中,學(xué)生信息管理是一項非常復(fù)雜的任務(wù)。管理者需要掌控學(xué)生從入學(xué)到畢業(yè)期間內(nèi)的所有信息,包括個人資料、選課記錄、成績數(shù)據(jù)等[1]。其中,選課環(huán)節(jié)尤為關(guān)鍵,需要著力協(xié)調(diào)解決教室、教師和學(xué)生之間的互補問題,遵循資源最大化的原則[2],使每位學(xué)生能根據(jù)自己的意愿選擇心儀的課程,老師盡可能在規(guī)定的教室內(nèi)完成授課。這一過程復(fù)雜性較高,約束條件也較多。借助信息化技術(shù)的升級改造,可以對傳統(tǒng)的學(xué)生信息管理方法進行優(yōu)化,實現(xiàn)對學(xué)生從入學(xué)開始產(chǎn)生的所有數(shù)據(jù)信息的管理,優(yōu)化教學(xué)資源配置,提高學(xué)生排課、選課的效率,探索高校學(xué)生信息管理的智能化建設(shè)。
目前,我國的高校基本上都在推進學(xué)生信息管理系統(tǒng),允許學(xué)生通過系統(tǒng)對個人的所有信息進行管理,許多高校都已經(jīng)在探討學(xué)生信息管理系統(tǒng)的實際建設(shè)[3]。袁愛平等人[4]已經(jīng)在長沙民政職業(yè)技術(shù)學(xué)院中建設(shè)了高校信息管理系統(tǒng),系統(tǒng)采用SSM框架編程實現(xiàn),高效地收集、檢索和維護學(xué)生信息,但系統(tǒng)功能上僅維護了學(xué)生的基本信息,沒有納入學(xué)生的選課、成績等信息的管理,功能不夠完善。唐婷等人[5]借助大數(shù)據(jù)分布式系統(tǒng)搭建經(jīng)驗,開發(fā)了基于大數(shù)據(jù)處理技術(shù)的學(xué)生管理信息系統(tǒng),設(shè)計數(shù)據(jù)源層、數(shù)據(jù)存儲層、數(shù)據(jù)處理層、應(yīng)用層,分別完成數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)挖掘、用戶交互和可視化功能,以期促進學(xué)生管理工作動態(tài)化、信息化、科學(xué)化發(fā)展,但系統(tǒng)功能較少,未能考慮因系統(tǒng)部分功能的修改導(dǎo)致系統(tǒng)無法正常使用的弊端。
截至目前,幾乎所有的學(xué)生信息管理系統(tǒng)都是基于單體應(yīng)用開發(fā),導(dǎo)致該類系統(tǒng)的前后端功能代碼都集中在一個項目中,在對該類系統(tǒng)進行功能、性能升級的時候,影響了整個系統(tǒng)的正常運行,極大影響了高校日常工作的正常運轉(zhuǎn)[6]。為了解決這一弊端,本文嘗試借助Spring Cloud微服務(wù)技術(shù)[7],將高校學(xué)生信息管理系統(tǒng)的功能拆分成相互耦合度極低的單體應(yīng)用進行開發(fā),借助Spring Cloud微服務(wù)提供的不同組件完成單體應(yīng)用之間的通信與管理,協(xié)調(diào)完成系統(tǒng)的各項功能運轉(zhuǎn),對單個單體應(yīng)用的升級與改造將不會影響其他單體應(yīng)用,持續(xù)為高校學(xué)生信息管理提供服務(wù)。同時,為了更加快捷地對系統(tǒng)進行運維升級,本文使用Docker容器技術(shù)將高校學(xué)生信息管理系統(tǒng)部署在阿里云服務(wù)器端。
1 系統(tǒng)需求分析
高校學(xué)生信息管理系統(tǒng)的使用角色包括三類:管理員、教師和學(xué)生,他們對高校學(xué)生信息管理系統(tǒng)的需求都不一樣,下面將詳細介紹3個角色對高校學(xué)生信息管理系統(tǒng)的需求,并使用需求分析用例圖的形式進行展現(xiàn)。
1.1 管理員需求分析
高校學(xué)生信息管理系統(tǒng)的管理員需要對整個大學(xué)期間學(xué)生產(chǎn)生的信息進行管理,管理的主要對象是教師、學(xué)生和課程3個實體,要能夠?qū)崿F(xiàn)對這3個實體的增刪改查等基本操作,實現(xiàn)對教師、學(xué)生相關(guān)信息的有效管理,具體的需求分析用例圖如圖1所示。
1.2 教師需求分析
教師對高校學(xué)生信息管理系統(tǒng)的需求是要實現(xiàn)對個人信息的管理,查看學(xué)生選課信息并進行排課,查詢授課的選課學(xué)生信息,具體的需求分析用例圖如圖2所示。
1.3 學(xué)生需求分析
學(xué)生對于高校學(xué)生信息管理系統(tǒng)的需求是要能通過系統(tǒng)根據(jù)排課信息進行選課,具體細分是要能通過系統(tǒng)查看并修改個人的信息、查看帶課老師信息并進行選課、查看選課結(jié)果信息,退選已修選課,能夠滿足學(xué)生對于系統(tǒng)的需求,具體的需求分析用例圖如圖3所示。
2 系統(tǒng)詳細設(shè)計
2.1 Spring Cloud 微服務(wù)
高校學(xué)生信息管理系統(tǒng)借助Spring Cloud微服務(wù)框架將系統(tǒng)的功能拆分成4個單體功能應(yīng)用,分別是系統(tǒng)管理、用戶管理、選課管理和成績管理,每一個應(yīng)用再使用SpringBoot 的技術(shù)開發(fā)成一個獨立的微服務(wù),也就是說每一個微服務(wù)提供一個功能單一的服務(wù),比如用戶管理微服務(wù)就是對系統(tǒng)所有的用戶信息進行管理,包括管理員、教師和學(xué)生信息,對單個用戶信息的管理不影響其他單體應(yīng)用功能的運行,各微服務(wù)之間通過Spring Cloud微服務(wù)框架提供的組件進行通信與協(xié)調(diào)合作,完成高校學(xué)生信息管理的全部功能[8]。
2.2 前后端分離技術(shù)
在開發(fā)系統(tǒng)管理、用戶管理、選課管理和成績管理的微服務(wù)過程中,每一個單體功能應(yīng)用均使用了前后端分離開發(fā)技術(shù),后端整合了Swagger框架[9],可以在網(wǎng)頁頁面中對系統(tǒng)的API接口功能進行實時測試;前端使用Vue.js技術(shù)編寫網(wǎng)頁頁面,前后端的數(shù)據(jù)交互采用Restful風(fēng)格的接口,接口數(shù)據(jù)遵循JSON格式規(guī)范。這樣的技術(shù)選型優(yōu)勢在于前后端的開發(fā)以及測試都是可以獨立進行的,后端接口的測試不再依賴前端項目的運行,前端項目的頁面編寫也無須等待后端接口開發(fā)完成。此外,在后端的項目框架中,還整合了MyBatis-Plus和MyBatis-Generator 組件,可以自動連接MySQL數(shù)據(jù)庫,實現(xiàn)對實體數(shù)據(jù)的操作和后端代碼的自動生成。單體功能微服務(wù)使用Shiro技術(shù)保證系統(tǒng)的安全,執(zhí)行用戶的身份驗證、授權(quán)、加密和會話管理。
綜上所述,高校學(xué)生信息管理系統(tǒng)的整體技術(shù)框架圖如圖4所示。
2.3 Docker 容器部署技術(shù)
為了保證高校學(xué)生信息管理系統(tǒng)的高并發(fā)、易維護的性能需求,需要將系統(tǒng)部署在阿里云服務(wù)器端,系統(tǒng)的服務(wù)器資源配置為48核CPU處理器,基礎(chǔ)頻率為2.4GHz,內(nèi)存容量為128GB,硬盤的容量為64TB,服務(wù)器的操作系統(tǒng)使用Linux,提供的網(wǎng)絡(luò)帶寬不低于3 210Gbps,能同時滿足200人在線同時使用。在對高校學(xué)生信息管理系統(tǒng)進行部署的過程中,采用Docker容器方式進行部署[10],將系統(tǒng)管理、用戶管理、選課管理和成績管理4個微服務(wù)打包成鏡像文件,推送至Docker容器中,執(zhí)行部署的命令,即可快捷完成對微服務(wù)的部署工作。借助Docker容器的虛擬化部署技術(shù),可以便捷實現(xiàn)對高校學(xué)生信息管理系統(tǒng)的改造和升級,當(dāng)單個單體功能需要修改時,只需要對微服務(wù)功能進行代碼更改,重新打包推送至Docker容器中,即可實現(xiàn)系統(tǒng)的熱部署服務(wù),系統(tǒng)無須中斷服務(wù)。
2.4 系統(tǒng)功能設(shè)計
高校學(xué)生信息管理系統(tǒng)針對管理員、教師和學(xué)生設(shè)計了不同的使用功能,管理員的功能包括學(xué)生信息管理、教師信息管理、課程信息管理和成績報表管理;教師的功能包括學(xué)生信息管理、我的課程管理、排課管理和選課成績管理;學(xué)生的功能包括課程管理、成績管理和個人信息管理,系統(tǒng)整體的功能框架圖如圖5所示。
3 系統(tǒng)功能實現(xiàn)
管理員可以對全部的學(xué)生信息進行增刪改查等操作,為了方便進行操作,將新增學(xué)生和對學(xué)生信息的修改、刪除操作進行了分離。在對學(xué)生進行新增的時候,需要提供學(xué)生的相關(guān)信息,這些信息包括:學(xué)號、年齡、姓名、身份證號、性別、密碼、專業(yè)、學(xué)院、班級等信息。在對學(xué)號進行驗證的時候,采用了正則表達式進行驗證,需要11位數(shù)字,否則視為無效的學(xué)號;身份證號也進行驗證,當(dāng)檢驗學(xué)生信息無誤后,可以進行添加操作,將學(xué)生的信息添加進系統(tǒng)中,如圖6 所示。
對于學(xué)生信息可以進行修改和刪除操作,具體操作如圖7所示,可以查看所有學(xué)生的詳細信息。
學(xué)生可以在系統(tǒng)中進行選課,查看選課結(jié)果,退選相關(guān)課程,查看已修課程,管理個人信息系,如圖9 所示。
4 結(jié)束語
本文設(shè)計并實現(xiàn)了一款基于Spring Cloud微服務(wù)的高校學(xué)生信息管理系統(tǒng)。系統(tǒng)采用Spring Cloud微服務(wù)框架將功能劃分成系統(tǒng)管理、用戶管理、選課管理和成績管理4個單體微服務(wù)功能,每一個微服務(wù)功能使用SpringBoot技術(shù)進行實現(xiàn)。每個單體微服務(wù)功能都采用了前后端分離技術(shù)進行編程,后端整合了MyBatis-Plus、Swagger等組件,方便對邏輯處理程序進行編寫,便捷對MySQL數(shù)據(jù)庫進行操作;前端使用Vue.js技術(shù)對頁面進行編寫,前后端使用RESTful風(fēng)格的JSON數(shù)據(jù)進行交互。單體微服務(wù)功能開發(fā)完畢后,使用Docker虛擬化技術(shù)進行部署,各微服務(wù)之間相互溝通協(xié)作,共同對外提供個人信息管理、選課管理、成績管理、課程管理等功能。這樣的技術(shù)選型有利于提高代碼功能的獨立性,減少不同功能之間的耦合,對單個微服務(wù)功能的升級與維護不會影響到系統(tǒng)功能的正常運轉(zhuǎn),極大增加了系統(tǒng)的穩(wěn)健性。