郝佳晶
(山西職業(yè)技術(shù)學(xué)院,山西 太原030006)
隨著計算機技術(shù)的廣泛應(yīng)用,計算機基礎(chǔ)應(yīng)用成為高職院校學(xué)生和社會在職人員所必須掌握的一項公共專業(yè)技能,《計算機應(yīng)用基礎(chǔ)》課程不僅只在計算機專業(yè)開設(shè),還需要面向其他專業(yè)學(xué)生、社會用戶提供相關(guān)方面的教學(xué)服務(wù)。迅速擴(kuò)大的學(xué)習(xí)群體、多元化的用戶需求,《計算機應(yīng)用基礎(chǔ)》傳統(tǒng)的課堂教學(xué)模式已經(jīng)很難滿足,因此本研究提出了基于《計算機應(yīng)用基礎(chǔ)》課程的線上移動教學(xué)平臺解決方案,借助網(wǎng)絡(luò)技術(shù)與移動通訊技術(shù)構(gòu)建更為靈活的教學(xué)模式,為用戶提供豐富的學(xué)習(xí)共享資源,滿足用戶隨時隨地的學(xué)習(xí)需求。
微服務(wù)架構(gòu)是基于微服務(wù)的一種系統(tǒng)解決方案,而微服務(wù)是指能夠協(xié)同工作的、功能明確且自治的“小”服務(wù)[1]。這些服務(wù)能夠獨立開發(fā)、迭代和模塊化部署,服務(wù)與服務(wù)之間可以采用統(tǒng)一的數(shù)據(jù)格式進(jìn)行通信,大大降低了系統(tǒng)開發(fā)難度,簡化了代碼量。
微服務(wù)架構(gòu)所具有的優(yōu)勢主要有以下幾個方面:
1) 服務(wù)的異構(gòu)性,微服務(wù)架構(gòu)提供了統(tǒng)一化、標(biāo)準(zhǔn)化數(shù)據(jù)通信格式和服務(wù)調(diào)度機制,因此微服務(wù)的開發(fā)只需考慮業(yè)務(wù)需求本身,無需被開發(fā)技術(shù)、開發(fā)語言、開發(fā)框架所局限,微服務(wù)對于底層服務(wù)的異構(gòu)性實現(xiàn)很好的屏蔽。
2) 系統(tǒng)的容錯性,微服務(wù)框架將服務(wù)以組件方式接入到服務(wù)系統(tǒng)當(dāng)中,服務(wù)與服務(wù)之間具有明確的服務(wù)邊界,單個服務(wù)實例的錯誤不會導(dǎo)致系統(tǒng)其他功能的正常運行,大大提高了系統(tǒng)的容錯性。
3) 易于擴(kuò)展和部署,緊耦合方式開發(fā)的系統(tǒng),在功能擴(kuò)展和系統(tǒng)部署時,代碼改動量會非常大,而且每次都需要對整個系統(tǒng)進(jìn)行打包和部署。微服務(wù)架構(gòu)則只需要以模塊的形式對所涉及的服務(wù)進(jìn)行代碼修改或部署即可,既不會影響整個系統(tǒng)的結(jié)構(gòu)設(shè)計,也無需對整個系統(tǒng)進(jìn)行部署。
移動WEB開發(fā)是指基于移動端的WEB服務(wù)開發(fā),所涉及的核心技術(shù)有HTML5、Jquery、SpringBoot等。
1) HTML5是WEB開發(fā)最為核心的語言標(biāo)準(zhǔn)之一,HTML5提供了前端頁面的各類元素顯示與設(shè)備交互的規(guī)范,并新增了智能表單、繪圖畫布、多線程處理等功能,能夠適配各種顯示終端,包括移動端和PC端。
2) Jquery框架是以JavaScript語言為核心、集合了CSS動態(tài)樣式的封裝框架,集合了JavaScript語言的執(zhí)行高效、封裝性高、體量小等技術(shù)優(yōu)勢,主要用于系統(tǒng)前端HTML頁面的動畫效果實現(xiàn)和邏輯事務(wù)的動態(tài)控制。采用Jquery框架可以快速實現(xiàn)頁面樣式的統(tǒng)一化風(fēng)格設(shè)計,也可以進(jìn)行前端頁面訪問的安全驗證。
3) SpringBoot框架是基于JAVA核心語言庫所構(gòu)建的輕量級企業(yè)軟件開發(fā)框架,適用于微服務(wù)組件的劃分和重組[2]。其核心容器采用BeanFactory代碼框架,將代碼開發(fā)與框架配置實現(xiàn)了解耦,通過Spring上下文完成框架配置的文件構(gòu)建,最后通過Spring所構(gòu)建的多個抽象層分別實現(xiàn)微服務(wù)模塊的邏輯隔離、數(shù)據(jù)庫交互異常處理等功能。
移動教學(xué)平臺旨在實現(xiàn)《計算機應(yīng)用基礎(chǔ)》課程線上教學(xué)資源的共享和在線教學(xué)活動的開展,主要面向的用戶包括教師、學(xué)生、社會在職人員,以及系統(tǒng)管理員[3]。
面向教師用戶,移動教學(xué)平臺需要具備教學(xué)資源管理、教學(xué)活動管理和學(xué)生信息統(tǒng)計等功能。其中教學(xué)資源管理主要是指對教學(xué)資源的上傳、下載、編輯、修改、刪除等操作功能,教師用戶可以通過該功能模塊針對自己上傳的教學(xué)資源進(jìn)行管理,并對資源的瀏覽量數(shù)據(jù)進(jìn)行統(tǒng)計、查看;教學(xué)活動管理包括學(xué)員分組管理、主題交流管理、指定教學(xué)資源的分享對象管理等功能,教師通過該模塊可以實現(xiàn)與學(xué)員的在線主題交流、在線資源分享;學(xué)生信息統(tǒng)計功能可以協(xié)助教師用戶對所屬自己任課班級的學(xué)生進(jìn)行相關(guān)信息的統(tǒng)計,包括學(xué)生在線學(xué)習(xí)時長、資源瀏覽次數(shù)、平臺活躍度等。
面向?qū)W生和社會在職人員兩類用戶,移動教學(xué)平臺需要提供可匿名訪問的共享資源和通過身份驗證的權(quán)限內(nèi)共享資源兩種服務(wù)模式。其中無限制的資源共享包括各類教學(xué)相關(guān)的資訊、公告和通識基礎(chǔ)類教學(xué)內(nèi)容等,身份驗證后可共享的資源是指教師發(fā)布資源時有指定受眾范圍的,包括面向教師授課班級、社會培訓(xùn)班級范圍內(nèi)發(fā)布的課程資源、交流主題、作業(yè)、課外拓展等資源。
系統(tǒng)管理員則主要負(fù)責(zé)維護(hù)系統(tǒng)后臺,包括所有的用戶數(shù)據(jù)和教學(xué)資源。
移動教學(xué)平臺的架構(gòu)設(shè)計采用B/S架構(gòu),前端瀏覽器包括PC端的數(shù)據(jù)管理系統(tǒng)與移動端的教學(xué)服務(wù)系統(tǒng)兩大模塊,后端服務(wù)器包括WEB服務(wù)端與其他異構(gòu)服務(wù)器兩部分。如圖1所示。
圖1 移動教學(xué)平臺的架構(gòu)設(shè)計
前端瀏覽器的PC端數(shù)據(jù)管理系統(tǒng)主要服務(wù)于系統(tǒng)管理員,系統(tǒng)管理員通過瀏覽器頁面可以進(jìn)行系統(tǒng)數(shù)據(jù)的增、刪、改、查,以及系統(tǒng)基本參數(shù)設(shè)置、日志管理、數(shù)據(jù)備份等操作。而移動端的教學(xué)服務(wù)系統(tǒng)主要面向應(yīng)用用戶,提供各類教學(xué)資源的服務(wù)和交互功能。
后端服務(wù)器以WEB服務(wù)器為核心,設(shè)計了分層式微服務(wù)架構(gòu),包括微服務(wù)治理層、微服務(wù)通信層和微服務(wù)提供層。通過層次式微服務(wù)可以實現(xiàn)底層異構(gòu)服務(wù)的接入和共享,如各類關(guān)系型數(shù)據(jù)庫的接入、存儲服務(wù)和計算服務(wù)的接入等。
其中微服務(wù)治理層主要用于接收與響應(yīng)來自客戶端的微服務(wù)請求事件,首先用戶提交的服務(wù)請求會通過API網(wǎng)關(guān)設(shè)置WEB接口進(jìn)行接收,然后通過熔斷服務(wù)對請求中所需的微服務(wù)進(jìn)行狀態(tài)查詢,以判斷該服務(wù)是否可用,如可用,則通過中間層微服務(wù)通信層進(jìn)行調(diào)用。為了確保系統(tǒng)的安全可靠,治理層還提供了訪問限流機制,當(dāng)用戶并發(fā)數(shù)超過了設(shè)定閾值,就會出發(fā)限流機制對系統(tǒng)進(jìn)行保護(hù)。
微服務(wù)通信層用于規(guī)劃各個微服務(wù)之間的通信機制和調(diào)用方式??紤]到微服務(wù)之間還存在互相調(diào)用的情況,因此通信格式需標(biāo)準(zhǔn)化、統(tǒng)一化,以便于服務(wù)的接入和擴(kuò)展。該層的通信機制設(shè)計主要采用異步方式,消息發(fā)送后即繼續(xù)處理其他事務(wù),當(dāng)有數(shù)據(jù)返回時,再切換到消息接收角色,進(jìn)行數(shù)據(jù)處理;通信格式主要是JSON數(shù)據(jù)封裝格式,JSON數(shù)據(jù)包通過序列化字符串標(biāo)記數(shù)據(jù)對象,大大減少了數(shù)據(jù)長度,以提高數(shù)據(jù)傳輸度,是一種輕量級的數(shù)據(jù)傳輸格式,且內(nèi)置有多種函數(shù)用于實現(xiàn)不同數(shù)據(jù)格式的解析和封裝。
微服務(wù)提供層用于實現(xiàn)對微服務(wù)的管理與調(diào)度,具體包括用戶管理服務(wù)、消息管理服務(wù)、應(yīng)用服務(wù)等。用戶管理服務(wù)包括對用戶身份的合法性驗證、用戶信息管理等功能;消息管理服務(wù)包括系統(tǒng)消息、用戶消息的發(fā)布、編輯、管理等功能;應(yīng)用服務(wù)包括存儲空間管理、數(shù)據(jù)計算等服務(wù)。微服務(wù)調(diào)度機制的設(shè)計分為3個步驟:1)對接入底層的微服務(wù)進(jìn)行實例注冊,注冊后微服務(wù)實例才允許被調(diào)度;2)為微服務(wù)分配端口,API網(wǎng)關(guān)通過查詢服務(wù)注冊表獲取需調(diào)用的微服務(wù)的接口;3)根據(jù)預(yù)先設(shè)置的調(diào)度策略從注冊列表選擇合適的微服務(wù)實例進(jìn)行調(diào)用。
后端異構(gòu)服務(wù)用于實現(xiàn)具體的微服務(wù)接入,針對系統(tǒng)的具體功能需求,接入所需微服務(wù),當(dāng)微服務(wù)接入到平臺后端,就會向微服務(wù)提供層提交注冊請求,完成信息注冊,每個微服務(wù)都可以共享微服務(wù)提供層的注冊列表,以便于微服務(wù)之間的互相調(diào)用。
移動教學(xué)平臺功能設(shè)計主要包括4個模塊:微課視頻、教學(xué)咨詢、交流互動、系統(tǒng)設(shè)置,如圖2所示。
圖2 移動教學(xué)平臺的功能設(shè)計
微課視頻模塊提供了《計算機應(yīng)用基礎(chǔ)》課程中的3個模塊的視頻學(xué)習(xí)資源,并能夠記錄用戶的相關(guān)學(xué)習(xí)數(shù)據(jù),包括學(xué)習(xí)時長、視頻瀏覽個數(shù)、收藏數(shù)、點贊數(shù)等,便于用戶對個人的學(xué)習(xí)情況進(jìn)行查詢。
教學(xué)咨詢模塊面向用戶提供了課程學(xué)習(xí)以外的相關(guān)服務(wù)功能,包括課外資源共享、教學(xué)通知查詢、學(xué)習(xí)積分查詢3個子功能模塊。課外資源共享主要是提供了課程學(xué)習(xí)所需的電子文檔資源,用戶可以在線瀏覽相關(guān)資源,但不能下載;教學(xué)通知查詢是為了便于用戶查詢課程的各類教學(xué)安排,以便用戶及時跟進(jìn)學(xué)習(xí)進(jìn)度;學(xué)習(xí)積分查詢可供用戶查詢個人的學(xué)習(xí)積分,并按照視頻學(xué)習(xí)情況、習(xí)題練習(xí)情況等細(xì)項分別統(tǒng)計用戶的學(xué)習(xí)情況。
交流互動模塊為用戶提供了線上交流功能,用戶通過該模塊可以在線發(fā)布意見反饋、參與調(diào)查問卷、發(fā)布個人的學(xué)習(xí)作品、進(jìn)行習(xí)題練習(xí)等。
為了滿足各類社會群體對《計算機應(yīng)用基礎(chǔ)》課程的學(xué)習(xí)需求,同時考慮到用戶涉及面廣、數(shù)量多、需求復(fù)雜等問題,本研究嘗試設(shè)計與實現(xiàn)了一個基于微服務(wù)架構(gòu)的移動教學(xué)平臺,以實現(xiàn)移動端線上教學(xué)資源的共享與管理,以便于用戶隨時隨地進(jìn)行課程學(xué)習(xí)。采用微服務(wù)架構(gòu)大大提高了系統(tǒng)的功能可擴(kuò)展性與易維護(hù)性,有利于平臺資源的長期共享。