呂太之,張 軍,陳 勇
近年來,隨著云計(jì)算、大數(shù)據(jù)和人工智能等新一代信息技術(shù)的迅猛發(fā)展,越來越多的高職院校投入資金建設(shè)智慧校園,大力提升校園信息化水平,推動(dòng)教育資源信息化[1].職業(yè)教育培養(yǎng)的是技術(shù)應(yīng)用型人才,職業(yè)教育的特征決定了其在人才培養(yǎng)中實(shí)驗(yàn)和實(shí)訓(xùn)的重要性,然而實(shí)驗(yàn)室的信息化一直是智慧校園建設(shè)中的薄弱環(huán)節(jié),甚至是建設(shè)的盲區(qū).因此,利用信息化手段提高實(shí)驗(yàn)室的利用率,提高實(shí)驗(yàn)室管理水平,成為目前許多高職院校需要解決的問題之一[2-3].
目前很多高職院校實(shí)驗(yàn)室管理仍然停留在手工方式.以實(shí)驗(yàn)室預(yù)約使用為例,首先是教師以紙質(zhì)或者電子表格的方式申請(qǐng),然后實(shí)驗(yàn)室管理員以紙質(zhì)或電子的方式登記,最后按照教學(xué)安排由教務(wù)員和實(shí)驗(yàn)室管理員合作進(jìn)行實(shí)驗(yàn)室分配.這種方式隨著實(shí)驗(yàn)室、實(shí)驗(yàn)項(xiàng)目和使用人數(shù)的增加,會(huì)導(dǎo)致實(shí)驗(yàn)室管理工作的復(fù)雜度大幅提升,也容易出現(xiàn)諸多的錯(cuò)誤,無法滿足當(dāng)前實(shí)驗(yàn)室管理的要求.
基于云計(jì)算和人工智能技術(shù),設(shè)計(jì)并實(shí)現(xiàn)基于Web的實(shí)驗(yàn)室管理系統(tǒng).為了提高實(shí)驗(yàn)室排課的可靠性、準(zhǔn)確性和效率,系統(tǒng)使用粒子群算法對(duì)多個(gè)實(shí)驗(yàn)課程在同一時(shí)間段的排課沖突進(jìn)行優(yōu)化.為了提高系統(tǒng)開發(fā)效率,基于MVC(Model View Controller)模式,使用SSM(Spring+Spring MVC+Mybatis)框架實(shí)現(xiàn)系統(tǒng)功能.系統(tǒng)部署在Docker集群上,發(fā)揮了云平臺(tái)的彈性計(jì)算、高可靠性、高可擴(kuò)展性等優(yōu)點(diǎn),有效降低了開發(fā)和運(yùn)維成本[4].實(shí)驗(yàn)室管理系統(tǒng)有效地解決了實(shí)驗(yàn)室管理效率和預(yù)約沖突的問題,提升了實(shí)踐教學(xué)的管理水平,促進(jìn)了智慧校園的建設(shè).
通過對(duì)江蘇部分高職院校實(shí)驗(yàn)室管理現(xiàn)狀的調(diào)研和文獻(xiàn)查閱,結(jié)合江蘇海事職業(yè)技術(shù)學(xué)院智慧化校園建設(shè)和實(shí)驗(yàn)室管理的實(shí)際,設(shè)計(jì)并實(shí)現(xiàn)實(shí)驗(yàn)室管理系統(tǒng).系統(tǒng)面向游客、學(xué)生、教師、實(shí)驗(yàn)室管理員四類用戶,包括實(shí)驗(yàn)室管理、設(shè)備管理、實(shí)驗(yàn)室預(yù)約、基礎(chǔ)數(shù)據(jù)管理等功能.整體系統(tǒng)的用例如圖1所示.
圖1 系統(tǒng)用例圖
游客指的是無需登錄的用戶,該類用戶可以查看首頁、實(shí)驗(yàn)室介紹、通知通告和實(shí)驗(yàn)教學(xué)課表.學(xué)生用戶可以預(yù)約使用某類設(shè)備、上機(jī)管理、設(shè)備報(bào)修、個(gè)人信息管理.學(xué)生預(yù)約主要安排在晚上、周末等非教學(xué)時(shí)間,預(yù)約使用的設(shè)備目前只支持電腦.教師用戶可以執(zhí)行實(shí)驗(yàn)室預(yù)約管理、簽到管理、設(shè)備報(bào)修、個(gè)人信息管理等功能.實(shí)驗(yàn)室管理員完成整個(gè)實(shí)驗(yàn)室的管理操作.基礎(chǔ)數(shù)據(jù)管理包括教師信息、班級(jí)信息、課程信息、課表信息等管理,對(duì)這些基礎(chǔ)數(shù)據(jù)的操作有導(dǎo)入、導(dǎo)出和增刪改查.實(shí)驗(yàn)室管理主要是完成對(duì)實(shí)驗(yàn)室基本信息的維護(hù),包括實(shí)驗(yàn)室名稱、實(shí)驗(yàn)室地址、實(shí)驗(yàn)室描述和實(shí)驗(yàn)室所能支持開展實(shí)驗(yàn)的課程列表.設(shè)備管理維護(hù)實(shí)驗(yàn)室的設(shè)備信息.實(shí)驗(yàn)教學(xué)管理包括自動(dòng)生成實(shí)驗(yàn)教學(xué)課表、實(shí)驗(yàn)教學(xué)課表調(diào)整、實(shí)驗(yàn)教學(xué)調(diào)課或者調(diào)整場(chǎng)所.通知通告管理包括通知通告信息的增加、修改、刪除、發(fā)布功能.系統(tǒng)管理包括日志管理、數(shù)據(jù)管理和參數(shù)設(shè)置功能.
(1)平臺(tái)設(shè)計(jì)思想.平臺(tái)設(shè)計(jì)根據(jù)需求分析調(diào)研的結(jié)果,結(jié)合敏捷開發(fā)模式,通過快速迭代實(shí)現(xiàn)系統(tǒng)的開發(fā).平臺(tái)首先要滿足江蘇海院實(shí)驗(yàn)室管理的需求,并具有一定的擴(kuò)展性,能應(yīng)用到其他高校的實(shí)驗(yàn)室管理中.系統(tǒng)早期通過數(shù)據(jù)導(dǎo)入導(dǎo)出的方式對(duì)接學(xué)院其他系統(tǒng),后期統(tǒng)一接入到智慧校園大平臺(tái).
(2)功能模塊設(shè)計(jì).通過需求分析,確定系統(tǒng)需要實(shí)現(xiàn)的功能,設(shè)計(jì)出系統(tǒng)的總體框架.系統(tǒng)功能主要分為后臺(tái)管理模塊和前端查詢模塊.用戶在登錄模塊輸入正確的用戶名和密碼后進(jìn)入后臺(tái)管理主界面.使用用戶分為學(xué)生、教師和管理員,主要功能包括基礎(chǔ)數(shù)據(jù)管理、實(shí)驗(yàn)室管理、預(yù)約管理、實(shí)驗(yàn)教學(xué)管理、通知通告管理、系統(tǒng)管理、個(gè)人資料管理.后臺(tái)功能模塊設(shè)計(jì)如圖2所示.
圖2 后臺(tái)管理功能模塊圖
前臺(tái)功能包括網(wǎng)站首頁、實(shí)驗(yàn)室查詢、實(shí)驗(yàn)教學(xué)課表查詢和通知通告查詢.前端功能同時(shí)支持手機(jī)端和PC端.手機(jī)端采用響應(yīng)式布局,兼容不同手機(jī)型號(hào).圖3顯示了前臺(tái)管理的主要功能模塊.
圖3 前臺(tái)管理功能模塊圖
(3)數(shù)據(jù)庫設(shè)計(jì).數(shù)據(jù)庫設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的根基,直接關(guān)系到系統(tǒng)是否能滿足用戶需求.在充分了解用戶需求后,設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫,主要包括實(shí)驗(yàn)室表、設(shè)備表、課程表、預(yù)約表、教師表、實(shí)驗(yàn)教學(xué)課表、學(xué)生表、班級(jí)表、新聞公告表.圖4顯示了系統(tǒng)部分?jǐn)?shù)據(jù)表,主要涉及到實(shí)驗(yàn)室預(yù)約的功能.
圖4 數(shù)據(jù)庫設(shè)計(jì)
SSM(Spring+Spring MVC+MyBatis)框架由Spring和MyBatis兩個(gè)開源軟件集合而成,采用標(biāo)準(zhǔn)的MVC(Model View Controller)模式[5].Spring是一個(gè)輕量級(jí)的Java開源框架,核心思想是控制反轉(zhuǎn)和面向切面編程.Spring MVC是Spring框架的重要構(gòu)件,是一個(gè)輕量級(jí)的Web應(yīng)用開發(fā)框架,通過前端控制器、應(yīng)用控制器和上下文將Web開發(fā)分成模型層、視圖層和控制層三個(gè)層面[6].MyBatis是持久層的框架,支持定制化SQL和映射,實(shí)現(xiàn)了對(duì)象關(guān)系的映射.系統(tǒng)使用SSM框架進(jìn)行開發(fā),開發(fā)架構(gòu)如圖5所示.控制層由Spring MVC的入口DispatcherServlet和業(yè)務(wù)控制器組成,負(fù)責(zé)處理用戶交互部分;模型層由業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層組成,負(fù)責(zé)業(yè)務(wù)邏輯的處理,數(shù)據(jù)訪問層通過MyBatis框架實(shí)現(xiàn);視圖層由HTML、CSS、JavaScript等前端技術(shù)實(shí)現(xiàn),負(fù)責(zé)數(shù)據(jù)的顯示.
圖5SSM框架
用戶在前臺(tái)、預(yù)約、實(shí)驗(yàn)室管理等功能界面上進(jìn)行操作會(huì)向Web服務(wù)器發(fā)送請(qǐng)求,前端控制器DispatcherServlet是請(qǐng)求的入口,整個(gè)操作流程分為四個(gè)步驟.
步驟一,DispatcherServlet通過處理適配器調(diào)用各類攔截器,權(quán)限攔截器判斷當(dāng)前用戶是否有請(qǐng)求某業(yè)務(wù)控制器的權(quán)限,對(duì)于后臺(tái)管理如果是未登錄用戶或不具備相應(yīng)操作權(quán)限將跳轉(zhuǎn)回登錄界面或給出未授權(quán)操作的提示.日志攔截器記錄用戶的操作,信息記錄到日志表.編碼攔截器實(shí)現(xiàn)字符集的轉(zhuǎn)碼操作.
步驟二,DispatcherServlet根據(jù)用戶請(qǐng)求的地址和處理映射器調(diào)用對(duì)應(yīng)業(yè)務(wù)控制器.
步驟三,業(yè)務(wù)控制器進(jìn)行業(yè)務(wù)處理,調(diào)用業(yè)務(wù)邏輯層獲得數(shù)據(jù),返回ModelAndView對(duì)象給DispatcherServlet前端控制器.ModelAndView中包含了模型(Model)和視圖(View).View可以是視圖的邏輯名,或者是實(shí)現(xiàn)了View接口的對(duì)象.Model是借助于Map來存儲(chǔ)數(shù)據(jù).
步驟四,DispatcherServlet將View對(duì)象渲染出的結(jié)果返回給客戶.
實(shí)驗(yàn)室教學(xué)安排是根據(jù)已有的教學(xué)課表、實(shí)驗(yàn)室所支持的課程來進(jìn)行實(shí)驗(yàn)室的合理分配,從而滿足實(shí)驗(yàn)教學(xué)的工作需求,避免沖突.伴隨著生源的增加,且高職院校實(shí)踐教學(xué)占據(jù)教學(xué)任務(wù)的大半,實(shí)驗(yàn)室安排在時(shí)間和空間上越來越復(fù)雜,傳統(tǒng)的人工安排已無法適應(yīng)實(shí)踐教學(xué)安排的需要.為了有效提高實(shí)驗(yàn)室管理的工作效率,合理分配實(shí)驗(yàn)室資源,促進(jìn)實(shí)驗(yàn)室安排更為科學(xué)合理,采用計(jì)算機(jī)自動(dòng)安排實(shí)驗(yàn)室具有現(xiàn)實(shí)的意義[7].為了生成滿意的實(shí)驗(yàn)室安排結(jié)果,設(shè)定了一些限制因素,使得結(jié)果能夠盡可能滿足這些約束.主要限制因素如同一時(shí)間同一實(shí)驗(yàn)室只能排一門課程,實(shí)驗(yàn)室支持安排的課程是否滿足教師預(yù)約的要求、是否和上次實(shí)踐安排在同一實(shí)驗(yàn)室等.
粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)是1995年由KENNEDY等人提出一種模擬鳥群社會(huì)行為的搜索算法[8].在PSO算法中,粒子記錄了自己的速度、位置和已訪問過的最優(yōu)位置,代表了一種解決方案.粒子通過每一次迭代朝著全局最優(yōu)和已訪問過的最優(yōu)上移動(dòng).
基于傳統(tǒng)PSO算法收斂速度慢和局部收斂的問題,將前期研究成果動(dòng)態(tài)分?jǐn)?shù)階和alpha穩(wěn)定分布的PSO算法(DFC&ASD-PSO)[9]應(yīng)用于實(shí)驗(yàn)室排課,提高了實(shí)驗(yàn)室排課效率.將排課信息格式為長串?dāng)?shù)字,適應(yīng)度函數(shù)根據(jù)排課約束設(shè)定.下面的偽代碼描述了使用DFC&ASD-PSO搜索最優(yōu)排課結(jié)果的過程.
輸入:
預(yù)約信息、時(shí)間、實(shí)驗(yàn)室、課程等信息.
步驟:
particles=Init;//根據(jù)預(yù)約信息初始化粒子群
//根據(jù)搜索迭代次數(shù)和收斂情況確定搜索是否結(jié)束
while(IsStop()==false)
//根據(jù)適應(yīng)度函數(shù)更新粒子的最優(yōu)值和全局最優(yōu)值
CalculateEvaluation(particles);
for i=1 to Length(particles)
UpdateVelocity(particles(i));//更新粒子速度
UpdatePosition(particles(i));//更新粒子位置
end for
end while
viastore 始終致力于為工業(yè)、商業(yè)和服務(wù)業(yè)提供完備的內(nèi)部物流設(shè)備——揀選系統(tǒng)、高架倉庫、自動(dòng)化小型部件倉庫、配送和物流中心,可以為用戶提供咨詢、規(guī)劃并建造全新系統(tǒng)。作為viastore在中國的子公司,維世多物流系統(tǒng)(上海)有限公司負(fù)責(zé)其中國地區(qū)業(yè)務(wù),為客戶提供全年無休的24 h專家熱線,為客戶提供周到的服務(wù)和快速的備件配送。
排課表=Extract(particles);
輸出:
使得適應(yīng)度函數(shù)盡可能大地排課表
如果教師都沒有預(yù)約指定時(shí)間,在實(shí)驗(yàn)室能滿足教學(xué)的情況下,通過實(shí)驗(yàn)室排課算法自動(dòng)生成的實(shí)驗(yàn)教學(xué)課表是不存在沖突的問題.如果有教師預(yù)約,通過以下的方法解決潛在的沖突問題.
(1)教師在預(yù)約的時(shí)候,會(huì)預(yù)執(zhí)行自動(dòng)排課算法,如果存在沖突問題,給予沖突提示,指導(dǎo)其調(diào)整預(yù)約,但不強(qiáng)制調(diào)整.
(2)授課人數(shù)、教師權(quán)值、實(shí)驗(yàn)需求、預(yù)約時(shí)間等都作為排課算法權(quán)值的一部分,這樣雖然不能滿足所有教師的預(yù)約,但是能夠讓實(shí)驗(yàn)室使用時(shí)間效率最大化,受益面最廣,較好地解決了系統(tǒng)潛在的沖突問題.
(3)自動(dòng)課表生成后可以通過手動(dòng)調(diào)整來滿足教師的特殊要求.
單臺(tái)服務(wù)器的性能、資源和可靠性是無法確保的,所支持的并發(fā)連接數(shù)也是有限的,采用分布式Web平臺(tái)可以提高系統(tǒng)的并發(fā)數(shù)和穩(wěn)定性[10].Docker是開源的應(yīng)用容器引擎,簡化了系統(tǒng)平臺(tái)之間的差異性,具有較強(qiáng)的移植性[11].Web應(yīng)用及依賴包可以非常容易被打包并部署到Docker容器中.設(shè)計(jì)Docker集群化管理分布方案實(shí)現(xiàn)了實(shí)驗(yàn)室管理系統(tǒng)分布式Web平臺(tái).平臺(tái)總體架構(gòu)如圖6所示,由負(fù)載均衡、容器集群管理、Docker鏡像庫,以及基于容器的Web服務(wù)器四個(gè)部分組成.
圖6 分布式Web平臺(tái)
負(fù)載均衡將Web請(qǐng)求分擔(dān)給多臺(tái)Web服務(wù)器,提高了系統(tǒng)并發(fā)能力,保證了業(yè)務(wù)的高可用性.平臺(tái)基于高性能HTTP代理服務(wù)Nginx,通過HTTP重定向?qū)崿F(xiàn)負(fù)載均衡[12].用戶的所有請(qǐng)求首先發(fā)送給Nginx服務(wù)器,然后根據(jù)調(diào)度策略將請(qǐng)求分配給某一Web服務(wù)器處理.平臺(tái)采用輪詢策略,即當(dāng)新的請(qǐng)求到來時(shí),Nginx服務(wù)器將請(qǐng)求依次分配給下一臺(tái)Web服務(wù)器.
平臺(tái)采用Kubernetes構(gòu)建云端集群,實(shí)現(xiàn)一個(gè)靈活、可擴(kuò)展的實(shí)驗(yàn)室管理系統(tǒng).Kubernetes是Goolge公司開源的容器集群管理系統(tǒng),通過Kubernetes可以方便地實(shí)現(xiàn)Web應(yīng)用部署、維護(hù)和擴(kuò)展[13].
Docker鏡像提供基本的運(yùn)行環(huán)境,是容器的基石,容器是鏡像的運(yùn)行實(shí)例,有了鏡像才能啟動(dòng)容器[14].Docker私有鏡像倉庫存儲(chǔ)了智慧校園部分系統(tǒng)運(yùn)行的Docker鏡像.
Web服務(wù)部署在Docker容器上,操作系統(tǒng)采用CentOS,基于Java平臺(tái),Web服務(wù)采用Apache+Resin的配置.
針對(duì)當(dāng)前高職院校實(shí)驗(yàn)室管理中存在的不足,尤其是實(shí)驗(yàn)教學(xué)的安排過程繁瑣、實(shí)驗(yàn)室管理工作效率低下及容易出錯(cuò)的問題,設(shè)計(jì)基于Web的實(shí)驗(yàn)室管理系統(tǒng)來滿足學(xué)院實(shí)驗(yàn)室管理的業(yè)務(wù)需求.系統(tǒng)用戶分為實(shí)驗(yàn)室管理、教師、學(xué)生和游客,實(shí)驗(yàn)室管理可以完成實(shí)驗(yàn)室管理、設(shè)備管理、基礎(chǔ)數(shù)據(jù)管理、通知通告等功能.教師用戶能夠完成實(shí)驗(yàn)室使用預(yù)約,學(xué)生用戶可以完成實(shí)驗(yàn)項(xiàng)目預(yù)約,游客可以查看實(shí)驗(yàn)室介紹、實(shí)驗(yàn)教學(xué)安排、通知通告等信息.
系統(tǒng)使用DFC&ASD-PSO算法完成實(shí)驗(yàn)室排課,將實(shí)驗(yàn)室排課轉(zhuǎn)化為數(shù)學(xué)模型,通過粒子群算法搜索最優(yōu)結(jié)果,完善了實(shí)驗(yàn)室管理問題.系統(tǒng)開發(fā)綜合運(yùn)用SSM框架,簡化了開發(fā)流程,提高了開發(fā)效率.構(gòu)建基于Docker集群的分布式Web平臺(tái),將系統(tǒng)部署到該Web平臺(tái)上,提高了系統(tǒng)的并發(fā)性、可靠性和穩(wěn)定性.利用Kubernetes實(shí)現(xiàn)Docker集群的彈性計(jì)算,使得系統(tǒng)能夠更靈活地提供服務(wù).
通化師范學(xué)院學(xué)報(bào)2019年12期