薛云蘭 黃嘉浩 邵桐杰
摘? 要: 隨著互聯網技術和數字化教育的發(fā)展,在線課程學習與線下課堂逐步融合互補。針對線下課堂時間和空間的限制,以及無法定制個性化學習的缺陷,設計一套SpringCloud微服務架構在線課程學習系統(tǒng)。系統(tǒng)包含賬號登錄、視頻觀看、課程學習、評論收藏、個性化分析、學習路線推薦等功能。該在線課程學習系統(tǒng)實現了資源共享,其靈活性、便捷性突破了時空的制約,同時其個性化分析可以對學員的學習情況和興趣進行分析并針對性的進行推薦。
關鍵詞: 在線學習; SpringCloud; 數字化教育; 微服務架構
中圖分類號:TP319? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)05-130-04
Research and design of online course learning system with microservice architecture
Xue Yunlan Huang Jiahao ?Shao Tongjie
Abstract: With the development of Internet technology and digital education, online course learning and offline classrooms gradually merge and complement each other. Aiming at the time and space limitations and the inability to customize personalized learning of offline classroom, a set of online course learning system based on SpringCloud microservice architecture was designed. The system includes operations such as account login, video viewing, course learning, comment collection, personalized analysis, and learning route recommendation. This system realizes resource sharing, and its flexibility and convenience break through the constraints of time and space, while its personalized analysis can analyze the learning situation and interests of students and make targeted recommendations.
Key words: online learning; Spring Cloud; digital education; microservice architecture
引言
我國《教育信息化“十四五”規(guī)劃》、《教育信息化中長期發(fā)展規(guī)劃(2021—2035年)》、《教育信息化2.0行動計劃》[1]中提出,將教育事業(yè)與智能科技技術互相融合。
要實現“互聯網+教育”、“智能+教育”、“數字化教育”,在線課程是基礎。本文采用SpringCloud微服務架構設計思想,結合SpringBoot后端框架和前端Vue.js框架,設計并實現在線課程學習系統(tǒng)。根據學校的教學需求,設計系統(tǒng)功能模塊:課程管理、學情分析、課程學習、后臺管理等。
1 系統(tǒng)需求分析
1.1 系統(tǒng)用戶分析
在線課程學習系統(tǒng)主要面向學校的教師用于線上線下混合式教學和機構的課外培訓課程購買學習,主要用戶有學生、教師、系統(tǒng)管理員,在對這三種用戶角色的職責需求調研分析后,歸納出用戶的功能需求、不同的功能權限、不同角色的平臺展示頁面需求。
⑴ 學生用戶
學生用戶是在線課程學習網站的主要使用者,可以對在線課程視頻進行瀏覽查看、查詢、觀看、收藏與下載;在個人中心信息模塊中可以編輯修改個人基本資料,包括頭像、昵稱等;在課程學習頁面可以對課程進行評論發(fā)布功能。
⑵ 教師用戶
教師需要在本系統(tǒng)中發(fā)布課程并上傳課程視頻資源,對課程進行管理;能夠查看學生學習情況;對學生進行管理等功能。
⑶ 系統(tǒng)管理員
系統(tǒng)管理員主要管理課程云視頻資源的監(jiān)管與審核、教師信息、用戶權限與系統(tǒng)菜單管理。
1.2 系統(tǒng)核心業(yè)務流程分析
本小節(jié)重點分析在本課程學習系統(tǒng)中學生學習課程、教師管理課程、系統(tǒng)管理員維護本系統(tǒng)與管理云課程資源的流程,流程圖如圖1所示。
核心業(yè)務流程描述如下。
學生登錄或注冊后登錄本系統(tǒng),進行個人信息修改,進入課程系統(tǒng)首頁,一是選擇首頁熱門課程進行學習或選擇熱門教師學習旗下開放的課程;二是選擇課程分類頁面,進行個人興趣課程的篩選進而學習;三是選擇課程教師的頁面,選擇青睞的教師名下課程。學生在本系統(tǒng)中學習課程的情況數據返回到后臺管理系統(tǒng)中,以備統(tǒng)計分析。
教師登錄課程學習后臺管理系統(tǒng)進行課程管理,可以創(chuàng)建課程、上傳課程視頻資源、查看和分析學生學習課程情況等。該系統(tǒng)用于教學管理,可以對教學做出調整。
系統(tǒng)管理員根據教師反映的情況對熱門課程進行封面宣傳,通過輪播圖形式,增加學生對該門課程的吸引力。
2 系統(tǒng)架構設計
為了應對現如今大流量、大數據的互聯網日漸訪問增量中,采用SpringCloud微服務架構設計思想,通過Vue.js作為前端框架和SpringBoot作為后端框架進行結合設計開發(fā)[2]。
2.1 系統(tǒng)前端設計
系統(tǒng)的前端設計部分為了服務用戶進行數據交互與數據展示所設計。主要分為兩部分(即Web客戶端與后臺管理服務端),一是為學生用戶(或非系統(tǒng)管理員用戶)用于課程學習的前臺網站;另外則是為了系統(tǒng)管理員與教師用戶服務的后臺管理系統(tǒng)。
前端設計部分分為視圖層與Node.js服務層。
前臺Web客戶端需要呈現給用戶數據轉變?yōu)橐晥D表示并進行交互,即要求頁面美觀、大方、簡潔的觀感。在視圖層中采用HTML5、CSS3、JavaScript等設計實現頁面的技術,通過Ajax能夠實現跟后端服務端接口API的異步請求功能進行數據交互,并實現異步更新數據[3]。因為涉及到學生學習課程情況可視化分析需求,故采用了基于JavaScript實現的開源可視化圖表庫ECharts[4],用于學生學情分析可視化圖表繪制。
在服務層中,考慮到應對網站流量爆發(fā)、減輕服務器壓力與渲染緩存壓力,采用了一款基于Vue.js的Nuxt.js服務端渲染前端框架對前臺Web客戶端進行開發(fā)[5]。此框架具有模塊化結構模式,默認優(yōu)化應用程序,服務端渲染即將基于Vue的組件在服務端渲染成HTML并傳輸到Web客戶端,能夠得到更高的性能釋放和開發(fā)友好的效果,對于內容性網站來說,更加容易被搜索引擎抓取內容,提升SEO排名。
2.2 系統(tǒng)后端設計
后端設計的結構層次分為網關層、業(yè)務服務層、基礎服務層、數據存儲層。
網關層主要由SpringCloud中的Gateway網關服務、基于OAuth2.0令牌授權機制的第三方登錄方法、基于Token認證的JWT(JsonWebToken)用戶認證方法三種技術結合而成,為用戶的登錄驗證、外部請求轉發(fā)后端服務、權限校驗、監(jiān)控限流等功能提供技術支持。
業(yè)務服務層主要是針對在線課程學習系統(tǒng)的各種業(yè)務邏輯處理,即對各個功能模塊進行編寫業(yè)務代碼。通過采用SpringBoot開發(fā)框架結合SpringCloud微服務架構設計的思想,將單體應用服務改進為各個主要功能模塊單獨成立服務模塊,例如:課程中心服務,內含教師管理、課程管理兩大核心業(yè)務;推薦服務,對熱門課程和熱門講師進行首頁封推;對象存儲服務,使用云服務資源對該系統(tǒng)用戶頭像、課程封面等圖片的存儲與下載提供支持;驗證碼服務,使用SpringBoot開發(fā)框架內置的郵箱發(fā)送的子模塊對注冊用戶發(fā)送自主設計隨機驗證碼進行用戶注冊驗證或通過購買云服務資源中的短信驗證碼發(fā)送方案結合開發(fā)使用等各種主要業(yè)務服務模塊。
在該系統(tǒng)開發(fā)過程的后端服務端對各種數據庫數據表數據的操作使用中,采用了基于MyBatis數據庫操作框架的一個增強型工具——MyBatis-Plus。對于任何使用MyBatis能夠對數據庫數據表進行增刪改查等一系列操作的數據庫都能夠支持,并且對于MyBatis原生操作框架做了增強操作,引入此工具對于項目的MyBatis框架來說無任何侵入式損害,并且能自動注入基本的增刪改查操作,直接面向對象操作,能有效提高開發(fā)的效率。
基礎服務層由采用SpringCloud微服務架構所創(chuàng)建的Nacos注冊與配置中心、SpringCloud提供的偽HTTP客戶端OpenFeign組件、阿里巴巴團隊開源的服務容錯綜合性解決方案Sentinel(分布式系統(tǒng)流量防衛(wèi)兵)、用于表格數據處理的EasyExcel插件等組成。通過整合這些組件來為在線課程學習系統(tǒng)提供服務注冊、服務發(fā)現、服務配置、服務容錯、服務調用等功能應用,為該系統(tǒng)打下雄厚的架構基礎,也為了日后能夠高效升級迭代內容。
數據存儲層,數據庫存儲與管理的工具,采用了MySQL數據庫結合Redis緩存數據庫使用,通過Redis非結構數據緩存機制對MySQL結構化數據的存儲與訪問管理提供補充增強作用,提高了系統(tǒng)內部運行速度和提升用戶在該系統(tǒng)中的學習服務體驗。對于音視頻和圖片等文件的存儲使用云服務資源進行數據存儲與管理。
2.3 系統(tǒng)數據庫設計
根據上述的系統(tǒng)功能模塊的需求分析和用戶需求分析,構建關于在線課程學習系統(tǒng)的數據庫以及相關數據表,例如課程學習服務就涉及到教師信息表、課程信息表、課程分類表、課程章節(jié)表、課程視頻信息表等;用戶個人中心服務主要有學生用戶信息表;首頁推薦服務主要有課程推薦類型表和課程推薦信息表。數據庫設計思想為分庫分表,不用的服務采用不同的數據庫,如:以edu為前綴的是課程中心服務,以ucenter為前綴的是學生用戶服務,以cms為前綴的是首頁推薦服務,以statistics為前綴的是系統(tǒng)日常數據統(tǒng)計服務。
3 系統(tǒng)功能模塊設計與實現
系統(tǒng)功能模塊設計分為Web客戶端與后臺管理系統(tǒng)兩部分,系統(tǒng)的功能模塊結構如圖2所示。
3.1 Web客戶端功能模塊
通過對學生用戶的功能需求分析,歸納整理出登錄注冊模塊、在線課程學習模塊、用戶中心模塊三大核心業(yè)務模塊。
⑴ 登錄注冊模塊
登錄注冊模塊是學生用戶在該學習系統(tǒng)中進行在線觀看課程學習的第一步,登錄后自動跳轉至系統(tǒng)首頁。系統(tǒng)的首頁可以不用進行登錄就進行瀏覽,面向的是游客角色。若在系統(tǒng)首頁點擊其他服務模塊,如點擊熱門課程觀看,查看課程分類等操作,系統(tǒng)會自動跳轉至登錄注冊頁面,登錄后才能進行其他相關操作。注冊頁面填寫相關用戶信息,如昵稱、手機號、郵箱、密碼、確認密碼等信息,填寫完畢后點擊發(fā)送驗證碼按鈕,在5分鐘內填寫系統(tǒng)發(fā)送到填寫的郵箱中的隨機驗證碼,后點擊注冊,完成系統(tǒng)驗證并注冊成功。注冊成功后跳轉登錄頁面進行登錄即可進入系統(tǒng)的首頁。
⑵ 在線課程學習模塊
在線課程學習模塊分為課程詳情模塊、課程觀看模塊、課程收藏模塊、課程分類模塊。
學生用戶在登錄在線課程學習系統(tǒng)后,可以點擊上方導航欄中的課程模塊,在該模塊下存在著系統(tǒng)所收錄的全部課程學習資源。并按照課程學科已經分門別類好了,學生可以通過點擊分類進行篩選課程來學習。點擊課程封面中的立即學習按鈕后轉至課程詳情頁面,在課程詳情頁面可以清晰知道該門的主要教授內容,頁面右側欄下顯示該門課程的授課教師和個人簡介。點擊授課教師頭像自動跳轉至授課教師個人詳情介紹頁面,頁面下方還展示其下授課的課程,學生可點擊進行學習。課程詳情頁面中的下方展示課程的大綱與小節(jié),點擊小節(jié)即可跳轉至課程視頻觀看頁面進行課程學習。
⑶ 個人中心模塊
個人中心模塊分為:我的基本資料、我的學習、消息中心三個模塊。其中我的基本資料為學生用戶登錄注冊后,可以修改和完善個人信息;我的學習中,可以查看已收藏的課程列表;消息中心顯示系統(tǒng)的公告信息。
3.2 后臺管理系統(tǒng)功能模塊
后臺管理系統(tǒng)更多的是面向管理者用戶使用和作用于Web客戶端交互,主要有教師管理模塊、課程管理模塊、封面推送管理模塊、菜單管理、權限管理、課程學情分析可視化模塊等。
后臺管理模塊著重在于教師管理模塊與課程管理模塊,前者系統(tǒng)管理員用于對授課教師個人信息的增刪改查操作,后者則是教師用戶在此模塊中進行創(chuàng)建課程、為課程添加分類、編寫課程大綱與小節(jié)、上傳課程視頻資源、發(fā)布課程的操作。后臺管理系統(tǒng)實現圖如圖3所示。
4 結束語
微服務架構的在線課程學習系統(tǒng)實現了課程資源管理,在線學習,個性化評價并推薦,由傳統(tǒng)的線下課堂教學轉變?yōu)橐詫W生為中心的開放式“互聯網+”課堂,對于高校和社會的人才質量培養(yǎng)路徑中,起到強化補充作用,有效提升學生的學習動力和教師授課的效率。接下來的研究,本系統(tǒng)優(yōu)化升級,增添課程論壇、課程問答等學習模塊,讓學生與教師之間的溝通交流更加高效、更加人性化。
參考文獻(References):
[1] 祝智庭,許秋璇,吳永和.教育信息化新基建標準需求與行動
建議[J].中國遠程教育,2021(10):1-11,76
[2] 薛云蘭,鄭海鋒,黃嘉浩.基于Spring Boot框架的網絡教學
管理系統(tǒng)[J].軟件導刊,2020,19(9):146-151
[3] 綦慧,徐曉慧.基于Web系統(tǒng)的大數據搜索技術的實現和
優(yōu)化[J].計算技術與自動化,2021,40(1):155-163
[4] 鄭嘉怡,陳濤,齊世玲,等.基于Echarts的智能車間數據可視
化系統(tǒng)[J].電腦知識與技術,2021,17(25):68-69
[5] 徐小輝,劉江濤,高涵,等.基于SpringBoot+Vue框架的采氣方
案系統(tǒng)開發(fā)[J].計算機仿真,2021,38(6):248-250,382
收稿日期:2021-10-20
*基金項目:2020年廣東省教育廳重點平臺及科研項目(特色創(chuàng)新類項目)“知識圖譜和深度學習混合驅動的推薦學習算法及在終身教育中的應用”(2020KTSCX401); 2021年廣東省“攀登計劃”一般項目“基于大數據分析的網絡教學管理個性化推薦系統(tǒng)”(pdjh2021b0766); 2020年廣東開放大學(廣東理工職業(yè)學院)校級科研項目“基于時序事件和語義背景的深度學習模型在事件抽取和預測任務中的研究”(ZD2001)
作者簡介:薛云蘭(1981-),女,安徽合肥人,工學博士,講師,主要研究方向:大數據分析、個性化推薦、自然語言處理等。