楊 萌
(淮北職業技術學院,安徽 淮北 235000)
隨著信息技術高速發展,目前國內興起第二次互聯網熱。各行各業都在信息化上轉型,達到智能中國,智能城市,智能辦公等要求[1]。而高校處于科學前沿,高科技人才聚集地,所以高校辦公和教學系統也必須改造和升級,以適應智能化的教學。高校評教系統以前多采用人工調查或者抽樣調查問卷方式,幾乎以應付的方式完成工作。這種手工方式難免存在不公開、不透明、不公平評教缺陷,無法調動學生或者教師評教積極性,無法推動教師教學質量提升和鼓勵教師潛心專研教學。所以高校急需一套公開、透明、公平的評教系統,實時的根據事實情況評定教師教學質量。本系統基于時下流行Spring Cloud技術,構建了一套高可用、高可靠、可擴展的智能網上評教系統。本系統可根據教師教學實際情況,靈活配置評教內容和評教方式,支持可公開、可匿名,并具有統計分析功能,便于教師橫向和縱向對比等。本文構建的系統對于提高高校教師教學水平具有直接的推動力。
本系統按照功能模塊包括:用戶模塊(包括用戶管理、權限管理等);評價系統模塊(包括評分功能、評價查看、評價修改及管理、打印管理、評價結果展示等);統計報表模塊(包括各種維度報表統計等);配置模塊(包括評價內容及方式配置等);登錄模塊(包括系統登錄和退出功能)。
本系統采用Spring Cloud架構以微服務方式部署系統。本方案使用技術棧為Springboot+Mysql+zookeeper+activemq+redis。具體通過Springboot開發微服務獨立程序,利用Mysql存儲系統數據,并且采用主從方式部署,提高系統可靠性;利用zookeeper協調微服務,提升服務的可用性;使用activemq提供消息隊列,所有微服務接口使用消息隊列交互方式提供系統的服務消費能力。此外,為提升系統的服務響應能力,將Redis部署在服務端前端。
Spring Cloud實際上為基于Springboot的快速構建分布式系統的工具集。其支持開發程序在docker和Pivotal Cloud Foundry上部署。可基于JVM的云進行原生應用開發,如配置管理、服務發現、熔斷器、智能路由、微代理、控制總線、分布式會話和集群狀態管理等操作。
作為第二代微服務的代表性框架,Spring Cloud已經在國內眾多公司中應用。例如,拍拍貸資深架構師楊波老師就根據自己的實際經驗以及對Spring Cloud的深入調研,并結合國內一線互聯網廠商開源項目應用經驗,認為Spring Cloud技術棧中的有些組件離生產級尚存在一定的差距,并基于此提出了一個可供中小團隊參考的微服務架構技術棧,又被稱為“中國特色的微服務架構技術棧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服務治理組件(包含服務注冊與發現);Hystrix容錯管理組件,可實現熔斷器操作;Ribbon客戶端負載均衡的服務調用組件;基于Ribbon和Hystrix的聲明式服務調用組件;網關組件,可提供智能路由、訪問過濾等功能;外部化配置組件。
Spring Cloud Confi配置管理工具,可實現應用配置的外部化存儲,支持客戶端配置信息刷新、加密/解密配置內容等。
Spring Cloud Bus事件、消息總線,可用于傳播集群中的狀態變化或事件,以及觸發后續的處理[9]。
Spring Cloud Security基于Spring security的安全工具包,可為應用程序添加安全控制。
Spring Cloud Consul 封裝了Consul操作,可實現服務發現與工具配置(與Eureka作用類似),與Docker容器可以無縫集成。
本系統基于Spring Cloud框架實現網上評教系統的項目配置、微服務注冊、服務提供及消費等功能,具體系統服務消費和注冊流程如圖2所示。

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

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

業務邏輯Service服務類包括UserService.java,EvaluateService.java,ConfiguationSercie.java等,其中UserService.java代碼如下:

業務邏輯控制層主要為后天業務邏輯控制代碼,本文主要通過User實現完整的Restful API 的UserController,主要代碼如下:


本系統主要基于SpringCloud微服務架構,將所有模塊拆解為服務,在服務中心進行注冊,并提供服務。而業務邏輯模塊均改造為微服務,單獨部署啟動,注冊到服務中心,并為消費者提供服務。本系統根據業務邏輯分為登錄服務,評價服務,管理服務等。
本系統基于Spring Cloud構建高校網上評教系統,支持微服務獨立部署,支持用戶管理、評教管理、統計分析、配置管理等功能,同時具備高可用、高可靠、可擴展能力。本系統對于高校網上評教系統建設具有較強的借鑒意義,有利于高校教學水平的提升。