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