楊 萌
(淮北職業(yè)技術(shù)學(xué)院,安徽 淮北 235000)
隨著信息技術(shù)高速發(fā)展,目前國內(nèi)興起第二次互聯(lián)網(wǎng)熱。各行各業(yè)都在信息化上轉(zhuǎn)型,達(dá)到智能中國,智能城市,智能辦公等要求[1]。而高校處于科學(xué)前沿,高科技人才聚集地,所以高校辦公和教學(xué)系統(tǒng)也必須改造和升級,以適應(yīng)智能化的教學(xué)。高校評教系統(tǒng)以前多采用人工調(diào)查或者抽樣調(diào)查問卷方式,幾乎以應(yīng)付的方式完成工作。這種手工方式難免存在不公開、不透明、不公平評教缺陷,無法調(diào)動學(xué)生或者教師評教積極性,無法推動教師教學(xué)質(zhì)量提升和鼓勵教師潛心專研教學(xué)。所以高校急需一套公開、透明、公平的評教系統(tǒng),實(shí)時的根據(jù)事實(shí)情況評定教師教學(xué)質(zhì)量。本系統(tǒng)基于時下流行Spring Cloud技術(shù),構(gòu)建了一套高可用、高可靠、可擴(kuò)展的智能網(wǎng)上評教系統(tǒng)。本系統(tǒng)可根據(jù)教師教學(xué)實(shí)際情況,靈活配置評教內(nèi)容和評教方式,支持可公開、可匿名,并具有統(tǒng)計(jì)分析功能,便于教師橫向和縱向?qū)Ρ鹊取1疚臉?gòu)建的系統(tǒng)對于提高高校教師教學(xué)水平具有直接的推動力。
本系統(tǒng)按照功能模塊包括:用戶模塊(包括用戶管理、權(quán)限管理等);評價系統(tǒng)模塊(包括評分功能、評價查看、評價修改及管理、打印管理、評價結(jié)果展示等);統(tǒng)計(jì)報(bào)表模塊(包括各種維度報(bào)表統(tǒng)計(jì)等);配置模塊(包括評價內(nèi)容及方式配置等);登錄模塊(包括系統(tǒng)登錄和退出功能)。
本系統(tǒng)采用Spring Cloud架構(gòu)以微服務(wù)方式部署系統(tǒng)。本方案使用技術(shù)棧為Springboot+Mysql+zookeeper+activemq+redis。具體通過Springboot開發(fā)微服務(wù)獨(dú)立程序,利用Mysql存儲系統(tǒng)數(shù)據(jù),并且采用主從方式部署,提高系統(tǒng)可靠性;利用zookeeper協(xié)調(diào)微服務(wù),提升服務(wù)的可用性;使用activemq提供消息隊(duì)列,所有微服務(wù)接口使用消息隊(duì)列交互方式提供系統(tǒng)的服務(wù)消費(fèi)能力。此外,為提升系統(tǒng)的服務(wù)響應(yīng)能力,將Redis部署在服務(wù)端前端。
Spring Cloud實(shí)際上為基于Springboot的快速構(gòu)建分布式系統(tǒng)的工具集。其支持開發(fā)程序在docker和Pivotal Cloud Foundry上部署。可基于JVM的云進(jìn)行原生應(yīng)用開發(fā),如配置管理、服務(wù)發(fā)現(xiàn)、熔斷器、智能路由、微代理、控制總線、分布式會話和集群狀態(tài)管理等操作。
作為第二代微服務(wù)的代表性框架,Spring Cloud已經(jīng)在國內(nèi)眾多公司中應(yīng)用。例如,拍拍貸資深架構(gòu)師楊波老師就根據(jù)自己的實(shí)際經(jīng)驗(yàn)以及對Spring Cloud的深入調(diào)研,并結(jié)合國內(nèi)一線互聯(lián)網(wǎng)廠商開源項(xiàng)目應(yīng)用經(jīng)驗(yàn),認(rèn)為Spring Cloud技術(shù)棧中的有些組件離生產(chǎn)級尚存在一定的差距,并基于此提出了一個可供中小團(tuán)隊(duì)參考的微服務(wù)架構(gòu)技術(shù)棧,又被稱為“中國特色的微服務(wù)架構(gòu)技術(shù)棧1.0”,如圖1所示[8]。

圖1 Spring Cloud解決方案
Spring Cloud核心組件包括Spring Cloud Netflix、Spring Cloud Config、Spring Cloud Bus、Spring Cloud Security、Spring Cloud Consul模塊等。其中Spring Cloud Netflix包括如下組件:Eureka服務(wù)治理組件(包含服務(wù)注冊與發(fā)現(xiàn));Hystrix容錯管理組件,可實(shí)現(xiàn)熔斷器操作;Ribbon客戶端負(fù)載均衡的服務(wù)調(diào)用組件;基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件;網(wǎng)關(guān)組件,可提供智能路由、訪問過濾等功能;外部化配置組件。
Spring Cloud Confi配置管理工具,可實(shí)現(xiàn)應(yīng)用配置的外部化存儲,支持客戶端配置信息刷新、加密/解密配置內(nèi)容等。
Spring Cloud Bus事件、消息總線,可用于傳播集群中的狀態(tài)變化或事件,以及觸發(fā)后續(xù)的處理[9]。
Spring Cloud Security基于Spring security的安全工具包,可為應(yīng)用程序添加安全控制。
Spring Cloud Consul 封裝了Consul操作,可實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)與工具配置(與Eureka作用類似),與Docker容器可以無縫集成。
本系統(tǒng)基于Spring Cloud框架實(shí)現(xiàn)網(wǎng)上評教系統(tǒng)的項(xiàng)目配置、微服務(wù)注冊、服務(wù)提供及消費(fèi)等功能,具體系統(tǒng)服務(wù)消費(fèi)和注冊流程如圖2所示。

圖2 系統(tǒng)服務(wù)消費(fèi)和注冊流程
用戶可在前端頁面操作,前端調(diào)用的是消費(fèi)者(Service-App)提供的rest接口,消費(fèi)者去調(diào)用服務(wù)提供者的具體服務(wù)(發(fā)現(xiàn))然后將結(jié)果返回給消費(fèi)者,繼而返回給用戶。利用IntelliJ IDEA結(jié)合Spring Initializer自動生成工程結(jié)構(gòu),其中主要模塊如下表1所示。
其中springcloud-eureka-server為注冊中心,所有微服務(wù)啟動之后均需要在注冊中心注冊,為便于消費(fèi)者訪問,用戶登錄本系統(tǒng)需發(fā)送登錄請求,登錄后臺模塊則先在注冊中心注冊,然后為用戶登錄動作提供服務(wù)。例如學(xué)生發(fā)起評測動作,則評測服務(wù)提供模塊先在注冊中心注冊,然后為學(xué)生評測動作提供服務(wù)。
springcloud-provider-user-service用戶服務(wù)提供模塊,此模塊主要提供登錄服務(wù),評測服務(wù),配置服務(wù),基本校驗(yàn)服務(wù)等。
springcloud-consumer-h5系統(tǒng)前端,主要為用戶使用界面,例如登錄操作,評測,統(tǒng)計(jì),分析等界面操作。
springcloud-gateway模塊,主要利用zuul提供服務(wù)注冊網(wǎng)關(guān),便于服務(wù)調(diào)用和訪問。

表1 各模塊說明
下文對于本系統(tǒng)部分功能代碼進(jìn)行詳細(xì)說明[10]。
本系統(tǒng)采用基于SpringBoot框架的Web和JPA模塊實(shí)現(xiàn)Restful API的常用方法。其中Entity類包括User.java(用戶DAO),Role.java(角色DAO),EvaluateRecord.java(評價記錄DAO),Configuaton.java(配置Dao),UserType.java(用戶類型Dao)等。其中Role.java具體代碼如下:

業(yè)務(wù)邏輯Service服務(wù)類包括UserService.java,EvaluateService.java,ConfiguationSercie.java等,其中UserService.java代碼如下:

業(yè)務(wù)邏輯控制層主要為后天業(yè)務(wù)邏輯控制代碼,本文主要通過User實(shí)現(xiàn)完整的Restful API 的UserController,主要代碼如下:


本系統(tǒng)主要基于SpringCloud微服務(wù)架構(gòu),將所有模塊拆解為服務(wù),在服務(wù)中心進(jìn)行注冊,并提供服務(wù)。而業(yè)務(wù)邏輯模塊均改造為微服務(wù),單獨(dú)部署啟動,注冊到服務(wù)中心,并為消費(fèi)者提供服務(wù)。本系統(tǒng)根據(jù)業(yè)務(wù)邏輯分為登錄服務(wù),評價服務(wù),管理服務(wù)等。
本系統(tǒng)基于Spring Cloud構(gòu)建高校網(wǎng)上評教系統(tǒng),支持微服務(wù)獨(dú)立部署,支持用戶管理、評教管理、統(tǒng)計(jì)分析、配置管理等功能,同時具備高可用、高可靠、可擴(kuò)展能力。本系統(tǒng)對于高校網(wǎng)上評教系統(tǒng)建設(shè)具有較強(qiáng)的借鑒意義,有利于高校教學(xué)水平的提升。