李自清
?
基于ssi框架藏語/漢語在線教育系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
李自清
(青海民族大學(xué)物理與電子信息工程學(xué)院青海西寧 810007)
隨著互聯(lián)網(wǎng)的發(fā)展,在線教育已經(jīng)變得越來越流行。開展現(xiàn)代化的在線教育,建設(shè)藏語/漢語在線教育系統(tǒng),適合我國(guó)國(guó)情以及社會(huì)的發(fā)展,對(duì)于改善藏族地區(qū)教育的教育狀況有著極其重要的意義和作用。文中設(shè)計(jì)和完成了基于spring+springMVC+iBatis藏語/漢語遠(yuǎn)程教育系統(tǒng)的在線學(xué)習(xí)平臺(tái),介紹了在 Eclipse開發(fā)平臺(tái)下,利用spring、springMVC、iBatis技術(shù)開發(fā)該平臺(tái)。主要討論了系統(tǒng)所涉及的相關(guān)技術(shù),設(shè)計(jì)的思想以及系統(tǒng)各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。
在線學(xué)習(xí)平臺(tái);藏語/漢語在線教育;spring+springMVC+iBatis
隨著互聯(lián)網(wǎng)的發(fā)展,在線教育已經(jīng)變得越來越流行。在線教育指的是通過應(yīng)用信息科技和互聯(lián)網(wǎng)技術(shù)進(jìn)行內(nèi)容傳播和快速學(xué)習(xí)的方法。與傳統(tǒng)教育相比,在線教育具有效率高、方便、低門檻、教學(xué)資源豐富的特點(diǎn)?;谏鲜鎏攸c(diǎn),再加上“互聯(lián)網(wǎng)+”推動(dòng),在線教育平臺(tái)興起,規(guī)模逐漸打開,并獲得了資本市場(chǎng)青睞。隨著在線教育的發(fā)展,三類主要的在線教育平臺(tái)已經(jīng)形成,分別是K12教育平臺(tái)、高等教育平臺(tái)、職業(yè)教育平臺(tái)。雖然在線教育平臺(tái)的種類眾多,例如有針對(duì)IT培訓(xùn)的,有針對(duì)于高等教育的,有針對(duì)于小初高中教育的,但是目前還沒有針對(duì)藏語/漢語遠(yuǎn)程教育學(xué)習(xí)的平臺(tái)。而針對(duì)少數(shù)民族地區(qū)的在線教育系統(tǒng)正處在起步階段。
鑒于藏族地區(qū)的教育現(xiàn)狀的需求和社會(huì)發(fā)展的必然,開展和建設(shè)藏語/漢語在線學(xué)習(xí)系統(tǒng),適合我國(guó)國(guó)情以及社會(huì)的發(fā)展,對(duì)于改善藏族地區(qū)教育狀況有著極其重要的意義和作用[1-4]?;诖吮尘埃疚脑O(shè)計(jì)了藏語/漢語在線教育系統(tǒng)平臺(tái),采用了spring、springMVC、iBatis 框架、MVC設(shè)計(jì)模式、ffmpeg轉(zhuǎn)碼等技術(shù),降低了系統(tǒng)模塊的耦合度,增強(qiáng)了系統(tǒng)的可維護(hù)性和靈活性。
1.1 MVC設(shè)計(jì)模式介紹
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離。這樣一個(gè)應(yīng)用被分成三部分:模型、視圖和控制器[5-7]。它實(shí)現(xiàn)了數(shù)據(jù)層與表示層的分離,特別適用于開發(fā)與用戶圖形界面有關(guān)的應(yīng)用程序。下面介紹模型、視圖、控制器三層的作用:
(1)模型層:應(yīng)用對(duì)象。模型是應(yīng)用程序的主體部分。模型代表了業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯;當(dāng)數(shù)據(jù)發(fā)生改變時(shí),它要負(fù)責(zé)通知視圖部分;一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于同一個(gè)模型可以被多個(gè)視圖重用,所以提高了應(yīng)用的可重用性。
(2)視圖層:數(shù)據(jù)的展現(xiàn)。視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接收用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖可以向模型查詢業(yè)務(wù)狀態(tài),但不能改變模型。視圖還能接受模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新。
(3)控制層:控制層接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。
1.2 輕量級(jí)spring、springMVC、iBatis框架的介紹
1.1.1 springMVC框架
SpringMVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦,基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開發(fā),SpringMVC 也是要簡(jiǎn)化我們?nèi)粘eb開發(fā)的[5]。
1.2.2 iBatis框架
iBatis是支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的持久層框架。iBatis避免了幾乎所有的 JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。iBatis可以對(duì)配置和原生Map使用簡(jiǎn)單的XML或注解,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄[6]。
1.2.3 spring框架
spring的核心是個(gè)輕量級(jí)的容器,它是實(shí)現(xiàn)IoC容器和非侵入性的框架,并提供AOP概念的實(shí)現(xiàn)方式;提供對(duì)持久層、事務(wù)的支持;提供MVC Web框架的實(shí)現(xiàn),并對(duì)于一些常用的企業(yè)服務(wù)API提供一致的模型封裝,是一個(gè)全方位的應(yīng)用程序框架,除此之外,對(duì)于現(xiàn)存的各種框架,spring也提供了與它們相整合的方案[7]。
1.3 ffmpeg介紹
ffmpeg 是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫(kù)libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多codec都是從頭開發(fā)的。ffmpeg可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換,例如可以將攝錄下的視頻avi等轉(zhuǎn)成現(xiàn)在視頻網(wǎng)站所采用的flv格式[8]。
2.1 系統(tǒng)的結(jié)構(gòu)
從實(shí)際需求出發(fā),系統(tǒng)采用B/S架構(gòu)??蛻舳送ㄟ^瀏覽器或者Android、iPhone移動(dòng)端設(shè)備訪問服務(wù)器;服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器mysql和mongodb通過ADO對(duì)象實(shí)現(xiàn)連接[9]。三者通過Internet實(shí)現(xiàn)互聯(lián)。本系統(tǒng)的結(jié)構(gòu)如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
2.2 系統(tǒng)用戶設(shè)計(jì)
藏語/漢語在線教育系統(tǒng)面向的用戶可以分為普通,教師,系統(tǒng)管理員三類。
2.2.1 普通用戶
學(xué)生用戶可以通過郵箱在該網(wǎng)站進(jìn)行注冊(cè),注冊(cè)完成后用戶根據(jù)注冊(cè)的郵箱和密碼進(jìn)入系統(tǒng)學(xué)習(xí)平臺(tái)進(jìn)行相關(guān)的操作。學(xué)生用戶可以在首頁(yè)查看課程、社區(qū)、文章、個(gè)人中心四個(gè)模塊。在課程模塊中用戶可以查看課程的信息和評(píng)論信息,可以根據(jù)自己的興趣愛好加入感興趣的課程。社區(qū)模塊中包括了其他用戶提的問題,用戶可以查看和回答其他用戶的問題。文章模塊中用戶可以查看其他用戶寫的文章,用戶也可以發(fā)表文章。個(gè)人中心模塊中用戶可以修改個(gè)人信息和密碼,可以查看用戶的課程、文章、關(guān)注、提問等。
2.2.2 教師用戶
教師用戶可以通過郵箱在該網(wǎng)站進(jìn)行注冊(cè),注冊(cè)完成后教師用戶可以根據(jù)注冊(cè)的郵箱和密碼進(jìn)入系統(tǒng)學(xué)習(xí)平臺(tái)進(jìn)行相關(guān)的操作。教師用戶的功能包括了個(gè)人中心管理、課程管理等操作。在個(gè)人中心中是對(duì)個(gè)人信息的維護(hù)、對(duì)我的文章的維護(hù)。課程管理包括了對(duì)視頻信息和評(píng)論的維護(hù),視頻的轉(zhuǎn)碼,和學(xué)生學(xué)習(xí)情況的統(tǒng)計(jì)。
2.2.3 系統(tǒng)管理員用戶
管理員用戶包括了用戶管理、反饋管理、消息推送、課程管理、文章管理、社區(qū)管理等操作。
2.3 系統(tǒng)功能模塊設(shè)計(jì)
系統(tǒng)功能模塊設(shè)計(jì)如圖2所示。
下面根據(jù)用戶的角色介紹功能模塊的作用:
(1)普通用戶包括了個(gè)人中心模塊、課程模塊、社區(qū)模塊、文章模塊。個(gè)人中心模塊:在個(gè)人中心模塊中包括了對(duì)個(gè)人信息的維護(hù)、我的文章的維護(hù)、我的提問的維護(hù)、我的關(guān)注的維護(hù)、我的課程的 維護(hù)。
圖2 系統(tǒng)功能模塊圖
課程模塊:在課程模塊中用戶可以根據(jù)課程的分類選擇需要的課程,在課程中包括了課程的介紹、主講人介紹、課程的評(píng)論等等信息。用戶可以加入感興趣的課程學(xué)習(xí)。用戶還可以對(duì)感興趣的課程進(jìn)行關(guān)注,當(dāng)有課程更新的時(shí)候會(huì)給用戶發(fā)送推送消息。
社區(qū)模塊:社區(qū)模塊包括了兩個(gè)功能,分別是等待回答和推薦。等待回答中的內(nèi)容是其他用戶提出的問題并且允許有用戶回答,推薦是系統(tǒng)推薦給該用戶回答的問題。
文章模塊:文章模塊包括了文章列表和寫文章兩個(gè)功能。在該模塊中用戶可以寫學(xué)習(xí)課程的感受,或者可以寫一些跟課程相關(guān)的文章供所有用戶欣賞。
(2)講師用戶包括了個(gè)人中心模塊、課程管理模塊。
個(gè)人中心模塊:個(gè)人中心模塊包括了對(duì)個(gè)人信息的維護(hù)、我的文章的維護(hù)。課程管理模塊:在該模塊包括了對(duì)課程信息的維護(hù)和推送、對(duì)課程評(píng)論的維護(hù)、對(duì)該課程學(xué)生學(xué)習(xí)情況統(tǒng)計(jì)、對(duì)視頻轉(zhuǎn)碼的管理等功能。
(3)管理員用戶包括了用戶管理模塊、反饋模塊、消息推送模塊、文章管理模塊、社區(qū)管理模塊、課程管理模塊。
用戶管理模塊:用戶管理模塊是管理員對(duì)其他用戶信息的維護(hù)。包括了對(duì)其他用戶的增刪改查。反饋模塊:該模塊的作用是反饋視頻播放情況的。如果在視頻播放的過程中出現(xiàn)視頻卡頓、視頻畫質(zhì)不清晰等情況,可以通過發(fā)送反饋信息,方便運(yùn)營(yíng)人員給用戶提供好的用戶體驗(yàn)。
消息推送模塊:當(dāng)有課程更新的時(shí)候給關(guān)注該課程和加入該課程的用戶發(fā)送推送消息。文章管理模塊:對(duì)文章的維護(hù),包括了對(duì)文章的增刪改查 操作。
社區(qū)管理模塊:對(duì)社區(qū)問答的維護(hù),包括了對(duì)文章的增刪改查操作。課程管理模塊:對(duì)課程的維護(hù),包括了對(duì)課程的增刪改查操作,學(xué)生學(xué)習(xí)的統(tǒng)計(jì)情況。
2.4 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)后臺(tái)采用mysql數(shù)據(jù)庫(kù),通過jdbc進(jìn)行數(shù)據(jù)庫(kù)連接,在數(shù)據(jù)庫(kù)中比較重要的表有11張數(shù)據(jù)表,分別是課程表(play)、視頻表(movie)、視頻格式表(video)、課程分類表(classify)、學(xué)習(xí)記錄 表(learn_record)、反饋表(feedback)、用戶表(user)、評(píng)論表(comment)、關(guān)注表(play_store)、轉(zhuǎn)碼任務(wù)表(video_task)、轉(zhuǎn)碼狀態(tài)表(video_beast)。play 表中存放課程的信息,movie表中存放視頻的信息,video表中存放視頻的各個(gè)格式的信息,classify 表中存放課程的各種分類信息,learn_record表中存放學(xué)生的學(xué)習(xí)記錄,feedback表中存放用戶的反饋信息,user 表中存放用戶的個(gè)人信息,comment 表中存放用戶對(duì)課程的評(píng)論信息,play_store表中存放用戶對(duì)課程的關(guān)注信息,video_task表和video_beast 是視頻轉(zhuǎn)碼用到的表。數(shù)據(jù)庫(kù)的詳細(xì)信息如圖3 所示。
為了給用戶更好的用戶體驗(yàn),減少用戶連接數(shù)據(jù)庫(kù)的頻率,加快用戶訪問數(shù)據(jù)庫(kù)的速度,在本系統(tǒng)在傳統(tǒng)技術(shù)的基礎(chǔ)上添加了memcached緩存技術(shù)[10]和mongodb數(shù)據(jù)庫(kù)[11]。其架構(gòu)圖如圖4所示。
在線學(xué)習(xí)平臺(tái)主要?jiǎng)澐譃榭刂茖?、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層[7]。
(1)控制層:控制層和用戶進(jìn)行交互,接收用戶請(qǐng)求,同時(shí)將請(qǐng)求結(jié)果展示給用戶,一170般使用MVC模式??刂茖釉谑盏接脩粽?qǐng)求后會(huì)將請(qǐng)求交給業(yè)務(wù)邏輯層處理,業(yè)務(wù)邏輯層經(jīng)過處理后將結(jié)果返回到控制層,進(jìn)而通過控制層將數(shù)據(jù)展示給用戶。本平臺(tái)使用springMVC框架實(shí)現(xiàn)。
(2)業(yè)務(wù)邏輯層:完成后臺(tái)系統(tǒng)的業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層可以處理控制層傳來的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行預(yù)處理,然后調(diào)用數(shù)據(jù)訪問層的相關(guān)函數(shù),完成與數(shù)據(jù)庫(kù)的交互。最終將結(jié)果返回到控制層,由控制層將數(shù)據(jù)展示給用戶。本系統(tǒng)使用spring框架實(shí)現(xiàn)業(yè)務(wù)邏輯層。
(3)數(shù)據(jù)訪問層:完成Java對(duì)象的持久化,建立其與數(shù)據(jù)庫(kù)表的映射關(guān)系,以及對(duì)數(shù)據(jù)庫(kù)的訪問。簡(jiǎn)單的說法就是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的增刪改查等操作,以及對(duì)象和數(shù)據(jù)表之間的mapping,對(duì)象實(shí)體的持久化。本系統(tǒng)使用iBatis框架實(shí)現(xiàn)數(shù)據(jù)訪問層。
3.1 組件之間的依賴關(guān)系
分層思想使的各模塊可以獨(dú)立開發(fā)測(cè)試,提高了軟件的可重用性,便于代碼的管理和改動(dòng)。系統(tǒng)的各模塊之間通過接口連接。下一層只需要為上層提供接口即可,上一層不需要知道下一層具體的實(shí)現(xiàn)[12]。各組件之間的依賴關(guān)系如圖5所示。
圖3 數(shù)據(jù)庫(kù)設(shè)計(jì)圖
圖4 系統(tǒng)架構(gòu)圖
3.2 系統(tǒng)的實(shí)現(xiàn)
在線學(xué)習(xí)平臺(tái)采用的Java分層開發(fā)模式,主要包括普通用戶子系統(tǒng)模塊、講師用戶子系統(tǒng)模塊、管理員用戶子系統(tǒng)模塊。這三個(gè)子系統(tǒng)的模塊的開發(fā)流程和大體思路基本相似。由于篇幅限制,本文只介紹該平臺(tái)具有代表性的兩個(gè)模塊的實(shí)現(xiàn)。
圖5 組件依賴關(guān)系圖
3.2.1 普通用戶子系統(tǒng)中課程模塊的實(shí)現(xiàn)
課程模塊主要實(shí)現(xiàn)了課程分類、課程評(píng)論、加入課程、課程信息等功能。因?yàn)椴捎玫氖莏avaEE的分層開發(fā)模式,所以在本模塊中課程分類、課程評(píng)價(jià)、課程信息、加入課程的設(shè)計(jì)方法的思路類似。下面將對(duì)加入課程模塊功能進(jìn)行詳細(xì)闡述,依次通過控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層來介紹其底層邏輯的實(shí)現(xiàn)。
控制層的任務(wù)是數(shù)據(jù)的封裝和傳遞。在本模塊中控制層的類是 PlayInfoController,該類繼承了MobileUIBaseController,MobileUIBaseController 中定義了一些課程常用的屬性。在PlayInfoController 類名上用@Controller指定該類為一個(gè)控制器,并在類的方法上用@RequestMapping指定核心分發(fā)器分發(fā)給控制器的處理路徑和參數(shù)。當(dāng)有請(qǐng)求的時(shí)候,會(huì)根據(jù)請(qǐng)求的路徑和@RequestMapping的路徑做匹配。當(dāng)用戶點(diǎn)擊開始學(xué)習(xí)后會(huì)根據(jù)其請(qǐng)求路徑來調(diào)用PlayInfoController類中的getMovies方法,傳遞的參數(shù)包括plid、uuid。在該方法的內(nèi)部會(huì)調(diào)用攔截器,判斷用戶是否登錄,如果用戶登陸后會(huì)得到用戶名userId。然后對(duì) plid,uuid,userId進(jìn)行封裝傳遞給業(yè)務(wù)邏輯層的類方法使用,當(dāng)getMovies方法執(zhí)行結(jié)束后,return一個(gè)封裝類AjaxResult,在該類中封裝了用戶需要的信息,最終將 AjaxResult返回給jsp或者Android、iPhone客戶端頁(yè)面中。
業(yè)務(wù)邏輯層主要是由接口(interface)和接口的實(shí)現(xiàn)類來實(shí)現(xiàn)每個(gè)功能模塊的邏輯。在此模塊中,PlayInfoController類使用spring配置文件applicat-ionContext.xml依賴注入PlayInfoService Bean,通過面向接口編程思想,當(dāng)調(diào)用PlayInfoService中的 getPlayInfoXXX的方法的時(shí)候,會(huì)調(diào)用業(yè)務(wù)邏輯層 PlayInfoServiceImpl中對(duì)應(yīng)的同名方法getPlay-Info-XXX來實(shí)現(xiàn)一些具體的業(yè)務(wù)。為了減少用戶訪問數(shù)據(jù)庫(kù)的次數(shù)、加快用戶訪問數(shù)據(jù)庫(kù)的速度,在業(yè)務(wù)邏輯層中涉及到查詢數(shù)據(jù)庫(kù)的情況都用到了mem-ec-ached和mongodb技術(shù)。如果需要查詢數(shù)據(jù)庫(kù),則先查詢mongodb數(shù)據(jù)庫(kù),因?yàn)閙ongodb數(shù)據(jù)庫(kù)的訪問速度快。如果在mongodb數(shù)據(jù)庫(kù)中沒有查找數(shù)據(jù)則再查詢mysql數(shù)據(jù)庫(kù)。
數(shù)據(jù)持久層主要是通過數(shù)據(jù)訪問對(duì)象DAO(Data Access Objects)把對(duì)數(shù)據(jù)庫(kù)的操作全部封裝在里面,然后由業(yè)務(wù)邏輯層PlayIn-fo-ServiceImpl來調(diào)用PlayInfoDAO中對(duì)數(shù)據(jù)庫(kù)的操作,PlayInfoDAO類中依賴注入spring框架提供的StoreMorphiaBean和SqlMapClientTemplate Bean。在這StoreM-or-phiaBean種封裝了對(duì)mongodb的jdbc操作,在SqlMapClientTemplate中封裝了對(duì)mysql的jdbc操作[13]。在本模塊中通過操作play表、play_learn表、movie表、video表獲得相應(yīng)的數(shù)據(jù)信息。
3.2.2 視頻轉(zhuǎn)碼模塊的實(shí)現(xiàn)
視頻轉(zhuǎn)碼的功能是將不同格式的視頻統(tǒng)一轉(zhuǎn)碼為相同格式的視頻。這樣可以使普通用戶不會(huì)因?yàn)闉g覽器不支持播放某種視頻的格式而不能正常觀看。視頻轉(zhuǎn)碼模塊是一個(gè)定時(shí)任務(wù),不是javaEE程序,所以在此處沒有使用javaEE的分層模式。視頻轉(zhuǎn)碼模塊的主要工作是每隔一段時(shí)間就向視頻存儲(chǔ)服務(wù)器查看有沒有需要轉(zhuǎn)碼的視頻,如果有則進(jìn)行轉(zhuǎn)碼。在該模塊中首先調(diào)用VideoTranscodeDaemo 類中的main方法。然后判斷傳入的參數(shù),如果沒有參數(shù)傳入,就要進(jìn)行視頻轉(zhuǎn)碼。首先調(diào)用Video-Sta-rtupServiceImpl類的start()方法,然后調(diào)用該類的preProcess()查找出需要轉(zhuǎn)碼的視頻并建立任務(wù)。調(diào)用VideoConvertEngine類中的submitTask()方法,在該方法中進(jìn)行轉(zhuǎn)碼任務(wù)的狀態(tài)更新。最后再依次調(diào)用 DownloadStageImpl、PreConvertStageImpl、Mp4ConvertStageImpl、FlvConvertStageImpl、M3u8-ConvertStageImpl、UploadStageImpl和FinishStag-eImpl類中的execute()方法進(jìn)行轉(zhuǎn)碼。其轉(zhuǎn)碼流程圖如圖6所示。
本文設(shè)計(jì)實(shí)現(xiàn)了藏語/漢語在線教育系統(tǒng)系統(tǒng),并研究基于JavaEE的MVC軟件設(shè)計(jì)模型的特點(diǎn)和關(guān)鍵技術(shù)。介紹并應(yīng)用開源框架spring、spring-MVC、iBatis。為了提高系統(tǒng)的運(yùn)行速率,減少用戶訪問數(shù)據(jù)庫(kù)的頻率,使用了memcached技術(shù)。所以當(dāng)用戶訪問數(shù)據(jù)的時(shí)候先查看緩存中是否有需要的數(shù)據(jù),如果沒有才去連接數(shù)據(jù)庫(kù)查詢。為了提高用戶訪問數(shù)據(jù)庫(kù)速度,本平臺(tái)采用了mongodb和mysql數(shù)據(jù)庫(kù)相結(jié)合的方式。用戶可以通過該系統(tǒng)在任何時(shí)間、任何地點(diǎn)進(jìn)行在線學(xué)習(xí),消除了時(shí)間、空間障礙,降低了成本。憑借其信息存儲(chǔ)量大,交互性強(qiáng)等特點(diǎn),提高了藏語/漢語在線教育學(xué)習(xí)的效率。
圖6 轉(zhuǎn)碼流程圖
[1] 鄭小齡, 鄭嘉. 在線教育中的藍(lán)海[J]. 港澳經(jīng)濟(jì), 2015, (3): 60-61.
[2] 申晉祥, 鮑美英. 基于Android的移動(dòng)在線教育平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2016, 3(3): 30-33.
[3] 裴勇, 孫玉娣. 職業(yè)教育專業(yè)教學(xué)資源庫(kù)資源建設(shè)研究[J]. 軟件, 2015, 36(11): 23-26.
[4] 謝良才, 張焱, 李亞平. 中國(guó)傳統(tǒng)手工藝文化重建的路徑分析[J]. 理論與現(xiàn)代化, 2015(2): 111-115.
[5] 韓立. 基于MVC三層架構(gòu)會(huì)員管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 石家莊: 河北科技大學(xué), 2014.
[6] 任廣震, 侯進(jìn), 王獻(xiàn). MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014, 31(8): 54-58.
[7] 辛?xí)赠i, 吳偉明. J2EE 及相關(guān)技術(shù)的優(yōu)化在基站巡檢系統(tǒng)中的應(yīng)用[J]. 軟件, 2015, 36(9): 87-91.
[8] Paul Deck. Spring mvc 學(xué)習(xí)指南[M]. 北京: 人民郵電大學(xué)出版社, 2015.
[9] 任剛. ibatis 框架源碼剖析[M]. 北京: 電子工業(yè)出版社, 2010.
[10] 徐明華. Java Web 整合開發(fā)與項(xiàng)目實(shí)戰(zhàn)[M]. 北京: 人民郵電出版社, 2010.
[11] 吳張順, 張珣. 基于 FFmpeg 的視頻編碼存儲(chǔ)研究與實(shí)現(xiàn)[J]. 杭州電子科技大學(xué)學(xué)報(bào), 2006, 26(3): 30-34.
[12] 李昕, 李鳳華. 計(jì)算機(jī)基礎(chǔ)在線學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 遼寧工業(yè)大學(xué)學(xué)報(bào), 2009, 11(6): 130-131.
[13] 劉亮, 徐步東, 譚艷艷. 基于Memcached內(nèi)存對(duì)象緩存技術(shù)應(yīng)用研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2015, 25(11): 204-208.
[14] Kristina Chodorow. MongoDB 權(quán)威指南第2版[M]. 北京: 人民郵電出版社, 2014.
[15] 張倩, 李鶴. 視唱練耳課程在線學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與開發(fā)[J]. 吉林工程技術(shù)師范學(xué)院學(xué)報(bào), 2015, 31(7): 57-60.
[16] 馮祖洪. MySQL 的分布式數(shù)據(jù)庫(kù)訪問法[J]. 計(jì)算機(jī)應(yīng)用, 2004, 22(8): 4-6.
The Design and Realization of Online Education System Based on SSI Framework of Tibetan/Chinese
LI Zi-qing
(School of physics and electronic information engineering, Qinghai University for Nationalities QingHai Xinin 810007 China)
With the development of the Internet, online education has become more and more popular. To carry out the modernization of online education, construction of Tibetan and Chinese online education system, suitable for China’s national conditions and social development, to improve the educational status of the education in Tibetan areas has extremely important significance and role. In this paper, design and completion of the spring+spr-ing-MVC+iBatis Tibetan/Chinese distance education system based on online learning platform, introduced in eclipse development platform, using spring, springmvc, ibatis technology development the platform. It mainly discusses the related technology, design ideas and the design and implementation of each function module of the system.
Online learningsystem; The Tibetan/Chinese online education; Spring+springmvc+iBatis
TP311
A
10.3969/j.issn.1003-6970.2017.04.007
教育部“春暉計(jì)劃”合作科研項(xiàng)目, S2015037
李自清(1975-),講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。
本文著錄格式:李自清. 基于ssi框架藏語/漢語在線教育系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2017,38(4):36-42