鄭州 龔文娟
摘 要:近年來,國家高度重視在線開放課程建設(shè)與應(yīng)用工作,并將其定位為國家教育“變軌超車”關(guān)鍵一招,全國各地許多省市也結(jié)合自身特點,積極搭建基于云計算、云存儲、大數(shù)據(jù)及移動互聯(lián)的區(qū)域化大規(guī)模在線開放課程平臺,以用于較大區(qū)域范圍內(nèi)的課程共建共享,一般這類平臺既覆蓋在校師生,也覆蓋社會用戶,必然形成高并發(fā)、大容量、高帶寬占用的情況,也對平臺建設(shè)技術(shù)路線和數(shù)據(jù)庫設(shè)計有較高要求,本文結(jié)合“重慶高校在線開放課程平臺”建設(shè)經(jīng)驗及實驗技術(shù)數(shù)據(jù),總結(jié)分享同類平臺技術(shù)路線與數(shù)據(jù)庫設(shè)計思路。
關(guān)鍵詞:課程平臺;技術(shù)路線;數(shù)據(jù)庫設(shè)計;實驗探究
中圖分類號:TP315 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2019)03-0020-04
近年來,國家高度重視在線開放課程建設(shè)與應(yīng)用工作,并將其定位為國家教育“變軌超車”關(guān)鍵一招,催生了數(shù)萬門各級精品在線開放課程,有力地推動了教育教學(xué)資源數(shù)字化的發(fā)展。為更好地促進(jìn)這些課程的建設(shè)與應(yīng)用,實現(xiàn)優(yōu)質(zhì)數(shù)字資源的共建共享,全國各地省市也結(jié)合自身特點,積極搭建基于云計算、云存儲、大數(shù)據(jù)及移動互聯(lián)的區(qū)域化大規(guī)模在線開放課程平臺,以用于較大區(qū)域范圍內(nèi)的課程共建共享,平臺既覆蓋在校師生,也會向社會公眾提供學(xué)習(xí)服務(wù),這種應(yīng)用平臺必然形成高并發(fā)、大容量、高帶寬占用的情況,對平臺技術(shù)路線和數(shù)據(jù)庫設(shè)計有較高要求,針對這種應(yīng)用模式,結(jié)合“重慶高校在線開放課程平臺”(以下簡稱:課程平臺)建設(shè)經(jīng)驗,通過總結(jié)歸納平臺日常運行中的實驗數(shù)據(jù),提出適用于區(qū)域化在線開放課程平臺的技術(shù)路線和數(shù)據(jù)庫設(shè)計方案。
一、平臺技術(shù)路線設(shè)計思路
課程平臺采用國際日益成熟的Hadoop大數(shù)據(jù)計算、云計算等互聯(lián)網(wǎng)先進(jìn)技術(shù),全力打造技術(shù)先進(jìn)、簡單易用、響應(yīng)迅速、擴(kuò)展性強(qiáng)、安全可靠的資源共享公共服務(wù)平臺,能提供區(qū)域內(nèi)不低于200萬用戶的在線學(xué)習(xí)應(yīng)用服務(wù),滿足萬人并發(fā)在線學(xué)習(xí)需求,全面保障區(qū)域化在校開放課程平臺的教學(xué)應(yīng)用與共建共享。
課程平臺基于J2EE技術(shù),Nginx、XPE高性能WEB引擎等技術(shù)構(gòu)建WEB服務(wù)。依據(jù)業(yè)務(wù)特點,采用關(guān)系型數(shù)據(jù)庫MySQL、NoSQL數(shù)據(jù)庫MongoDB存儲關(guān)鍵業(yè)務(wù)數(shù)據(jù),以及高性能XPE DB數(shù)據(jù)庫用于存儲高并發(fā)存儲需求的日志記錄型數(shù)據(jù)。以Apache開源技術(shù)Lucene、Solr為基礎(chǔ),結(jié)合專有中文分詞及搜索意圖識別技術(shù),構(gòu)建智能化搜索引擎。以虛擬化技術(shù)和專有文檔、音視頻加工轉(zhuǎn)換技術(shù)構(gòu)建資源自動加工服務(wù)集群。采用Hadoop技術(shù)生態(tài)圈關(guān)鍵技術(shù)及其他相關(guān)技術(shù)構(gòu)建大數(shù)據(jù)處理能力,以實現(xiàn)基于用戶行為記錄的數(shù)據(jù)分析,并為未來用戶行為數(shù)據(jù)的進(jìn)一步挖掘提供基礎(chǔ)保障。課程平臺整體部署于更加穩(wěn)定的64位Linux操作系統(tǒng)CentOS之上。
程序開發(fā)語言以JAVA為主,部分?jǐn)?shù)據(jù)統(tǒng)計分析采用Python、C++語言,部分自動任務(wù)采用Shell腳本語言,WEB前端主要采用JavaScript語言。技術(shù)架構(gòu)概覽如圖1所示。
1.結(jié)合云計算彈性資源構(gòu)建動態(tài)可擴(kuò)展的高性能WEB服務(wù)集群
課程平臺整體將采用云計算、云存儲和云服務(wù)的部署方式,其彈性可擴(kuò)展的計算資源非常靈活,可根據(jù)業(yè)務(wù)的發(fā)展而動態(tài)調(diào)整??筛鶕?jù)實際使用情況,有效保障平臺訪問高峰時期對網(wǎng)絡(luò)、計算資源的需求。
結(jié)合負(fù)載均衡、高性能XPE WEB引擎,CDN、分布式緩存技術(shù),構(gòu)建一個動態(tài)可擴(kuò)展的高性能WEB應(yīng)用。XPE WEB引擎采用編譯技術(shù)對HTML、XML、JavaScript、CSS進(jìn)行優(yōu)化和壓縮等預(yù)處理。結(jié)合以上技術(shù)特點,構(gòu)建具備動態(tài)、可擴(kuò)展的WEB服務(wù),以適應(yīng)高并發(fā)、大規(guī)模的訪問要求。
2.關(guān)系型數(shù)據(jù)庫MySQL和NOSQL數(shù)據(jù)庫MongoDB
由于業(yè)務(wù)多樣性的特點,依據(jù)業(yè)務(wù)對數(shù)據(jù)存儲需求的特點,選用關(guān)系型數(shù)據(jù)庫MySQL和NOSQL數(shù)據(jù)庫MongoDB作為主要的數(shù)據(jù)存儲,以及XPE DB作為對極高性能要求的數(shù)據(jù)存儲。MySQL是應(yīng)用世界排名第二的產(chǎn)品,具備成熟、高性能、成本低的特點。而MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,能夠為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。XPE DB采用事件驅(qū)動的方式、基于LOG型的架構(gòu)設(shè)計,可充分利用硬件資源提供高性能的數(shù)據(jù)存儲。
3.專有中文分詞及搜索意圖識別技術(shù)構(gòu)建智能搜索引擎
由于平臺需求存儲和管理上百萬的教學(xué)資源,在如此海量的資源中實現(xiàn)精準(zhǔn)、快速的檢索是非常關(guān)鍵的。平臺基于Apache開源軟件Lucene、Solr,結(jié)合專有中文分詞技術(shù),以及搜索意圖識別技術(shù),構(gòu)建分布式的高性能搜索引擎,為平臺資源、課程等內(nèi)容的檢索提供保障。
4.流式資源加工服務(wù)及流媒體技術(shù)
基于文件格式識別、文檔轉(zhuǎn)換技術(shù),以及特有的流式算法技術(shù),將文檔類資源進(jìn)行技術(shù)轉(zhuǎn)換和加工,實現(xiàn)WEB在線方式的流式播放。支持教學(xué)資源文件WPS、DOC、PPT、PDF等常見格式的文檔轉(zhuǎn)換。音頻、視頻類資源文件,進(jìn)行統(tǒng)一格式、多種碼流的技術(shù)加工和轉(zhuǎn)換。
資源加工服務(wù),結(jié)合Virtual Machine虛擬化技術(shù),實現(xiàn)資源加工轉(zhuǎn)換的虛擬化、服務(wù)化??筛鶕?jù)資源文檔加工量的多少,實現(xiàn)動態(tài)的擴(kuò)展。結(jié)合Secure Link安全連接技術(shù),實現(xiàn)資源的安全點播服務(wù)。
5.Hadoop生態(tài)系統(tǒng)(見圖2)關(guān)鍵技術(shù)構(gòu)建大數(shù)據(jù)計算能力
通過Hadoop生態(tài)系統(tǒng)中的關(guān)鍵技術(shù),構(gòu)建動態(tài)可擴(kuò)展的大數(shù)據(jù)存儲、計算,以及數(shù)據(jù)分析能力,實現(xiàn)基于用戶行為記錄的數(shù)據(jù)分析。用戶行為記錄是海量的,構(gòu)建10億甚至更高的數(shù)據(jù)記錄的存儲能力也是至關(guān)重要的。
HDFS分布式文件系統(tǒng),有著高容錯性的特點,并且可以部署在低廉的硬件上。能夠提供高吞吐量的數(shù)據(jù)訪問,提供超大規(guī)模數(shù)據(jù)文件的存儲,以滿足海量數(shù)據(jù)記錄存儲和分析的需求。
6.詳盡的用戶行為記錄技術(shù)
用戶行為記錄數(shù)據(jù)是用戶行為分析的前提保障,用戶行為記錄的準(zhǔn)確性、全面性將直接影響后續(xù)的大數(shù)據(jù)分析應(yīng)用的價值。
除常見的用戶訪問行為外,對共享服務(wù)平臺中最具價值的課程資源學(xué)習(xí)行為的記錄是非常關(guān)鍵的。基于文檔類資源、視頻類資源的流式播放技術(shù),基于Event捕獲的技術(shù),能夠準(zhǔn)確地捕捉和記錄用戶更加詳細(xì)的學(xué)習(xí)行為。文檔類資源,可以細(xì)化到每一頁,而視頻類資源可以細(xì)化到每一分鐘,如此準(zhǔn)確和詳細(xì)的學(xué)習(xí)行為記錄,將對后續(xù)的數(shù)據(jù)分析帶來更大的價值。
7.開放的數(shù)據(jù)接口
基于HTTP(s)協(xié)議的REST標(biāo)準(zhǔn)數(shù)據(jù)接口,數(shù)據(jù)內(nèi)容格式采用更加靈活和通用的JSON/XM格式,可最大程度地提高系統(tǒng)接入的可行性,降低接入難度,提高接口的穩(wěn)定性和可擴(kuò)展性。
二、技術(shù)實現(xiàn)特點及遵循的原則
1.采用彈性可擴(kuò)展的云計算資源
以虛擬化為特征的云計算技術(shù),將服務(wù)器計算資源、存儲資源以及交換機(jī)等網(wǎng)絡(luò)設(shè)備資源進(jìn)行虛擬化,能夠根據(jù)業(yè)務(wù)的不斷發(fā)展需要,隨時提供便捷、動態(tài)可擴(kuò)展的計算存儲資源。不僅能夠極大地提高資源的使用效率、大幅降低成本,還能夠極大地提升管理效率。
云產(chǎn)品和云服務(wù)彈性可擴(kuò)展的計算資源非常靈活,可根據(jù)業(yè)務(wù)的發(fā)展而動態(tài)調(diào)整??筛鶕?jù)實際使用情況,有效保障平臺訪問高峰時期對網(wǎng)絡(luò)、計算資源的需求。
2.構(gòu)建支持百萬用戶規(guī)模平臺
為保障平臺能夠有效面向區(qū)域內(nèi)所有學(xué)校師生提供全面、優(yōu)質(zhì)的服務(wù),平臺將按照大型系統(tǒng)進(jìn)行建設(shè)。構(gòu)建支持百萬用戶規(guī)模的大型服務(wù)平臺,為師生提供優(yōu)質(zhì)服務(wù)。
3.分布式集群技術(shù)構(gòu)建高可靠可伸縮平臺
課程平臺基于分布式、集群技術(shù)進(jìn)行設(shè)計。平臺由一系列可擴(kuò)展的服務(wù)群構(gòu)成,能夠隨著服務(wù)平臺的訪問量、數(shù)據(jù)量的動態(tài)增長而進(jìn)行靈活調(diào)整。基于集群方式設(shè)計的系統(tǒng),具備更好的可靠性,當(dāng)一臺或幾臺服務(wù)出現(xiàn)問題時,用戶的訪問會自動引導(dǎo)到其他服務(wù)器而不中斷用戶的訪問。從而使整個服務(wù)平臺具備更高的可靠性、更好的穩(wěn)定性、更大的并發(fā)服務(wù)能力,以便滿足不斷增長的用戶訪問需求。動態(tài)可擴(kuò)展的服務(wù)架構(gòu)如圖3所示。
4.構(gòu)建良好可擴(kuò)展的平臺
平臺盡可能以面向服務(wù)為核心概念、以服務(wù)為中心進(jìn)行設(shè)計,以使平臺具備良好的可擴(kuò)展性和開放性,能夠快速適應(yīng)快速發(fā)展的業(yè)務(wù)引起的變化。
5.構(gòu)建大數(shù)據(jù)計算能力
隨著大數(shù)據(jù)時代的到來,基于大數(shù)據(jù)的分析和應(yīng)用將創(chuàng)造無限的價值。為保障服務(wù)平臺中海量用戶行為數(shù)據(jù)的分析,構(gòu)建大數(shù)據(jù)計算處理能力,為進(jìn)行有效的分析和未來用戶行為數(shù)據(jù)的進(jìn)一步挖掘提供基礎(chǔ)保障。
6.基于信息安全標(biāo)準(zhǔn)體系,構(gòu)建安全穩(wěn)定的系統(tǒng)
為保障服務(wù)平臺的安全,平臺的建設(shè)將依據(jù)《信息系統(tǒng)安全等級保護(hù)基本要求》中安全保護(hù)等級三級的規(guī)范和要求進(jìn)行,確保共享服務(wù)平臺的安全。
7.結(jié)合云平臺,構(gòu)建數(shù)據(jù)的異地容災(zāi)備份
借助于云服務(wù)平臺的優(yōu)勢,可以選擇在物理上相距較遠(yuǎn)的數(shù)據(jù)中心作為異地容災(zāi)備份,提高抗自然災(zāi)害的能力。
8.構(gòu)建平臺實時監(jiān)控體系
對平臺運行的基礎(chǔ)服務(wù)器環(huán)境,建立相應(yīng)的實時監(jiān)控體系,以使系統(tǒng)管理員能夠了解和掌握平臺服務(wù)環(huán)境的運行情況。
9.基于簡潔用戶體驗友好的原則設(shè)計
平臺將基于核心功能、風(fēng)格簡潔、使用簡單、以用戶為中心的原則進(jìn)行設(shè)計,注重良好的用戶體驗,構(gòu)建用戶愛用、好用的服務(wù)平臺。
10.瀏覽器良好的兼容特性
考慮到學(xué)校學(xué)生數(shù)量眾多,學(xué)校、個人電腦配備差異較大,瀏覽器品種眾多的原因,平臺的設(shè)計要盡可能考慮好多瀏覽器兼容的特性,為廣大師生提供便利。能夠兼容IE6.0以上,以及Chrome、Firefox、Safari主流瀏覽器的使用。
三、數(shù)據(jù)庫設(shè)計思路
1.數(shù)據(jù)庫需求簡述
課程平臺有百萬用戶、千萬資源,需要滿足上萬用戶同時在線學(xué)習(xí)的要求。平臺功能豐富,涉及數(shù)據(jù)類型繁多,且數(shù)量較大,同時并發(fā)訪問要求也高,因此對數(shù)據(jù)庫設(shè)計的要求也有著很高的要求。
(1)數(shù)據(jù)類型多
涉及用戶、學(xué)校等組織管理型數(shù)據(jù),課程、資源、文檔等資源型數(shù)據(jù),討論、答疑等生成型數(shù)據(jù),用戶學(xué)習(xí)記錄、訪問行為等記錄型數(shù)據(jù),密碼、學(xué)分、交易等敏感型數(shù)據(jù),業(yè)務(wù)操作、關(guān)鍵行為記錄等日志型數(shù)據(jù)等。
(2)數(shù)據(jù)量大
指百萬用戶、千萬資源、千萬生成性資源、億級學(xué)習(xí)記錄、海量用戶行為記錄數(shù)據(jù)。
(3)并發(fā)訪問高
要滿足萬人同時在線學(xué)習(xí)。用戶學(xué)習(xí)時產(chǎn)生大量行為數(shù)據(jù),需要實時處理。
(4)數(shù)據(jù)安全
在線課程平臺需要符合《信息系統(tǒng)安全等級保護(hù)基本要求》中安全等級保護(hù)三級的要求,不僅需要對敏感類的數(shù)據(jù)做加密處理,而且對數(shù)據(jù)的備份也有著相應(yīng)的嚴(yán)格要求。
2.數(shù)據(jù)庫設(shè)計概覽(見圖4)
由于業(yè)務(wù)多樣性的特點,依據(jù)業(yè)務(wù)對數(shù)據(jù)存儲需求的特點,選用關(guān)系型數(shù)據(jù)庫MySQL和NOSQL數(shù)據(jù)庫MongoDB作為主要的數(shù)據(jù)存儲,以及XPE DB作為對高并發(fā)存儲要求的數(shù)據(jù)存儲。
(1)關(guān)系數(shù)據(jù)庫MySQL:用戶、權(quán)限、交易敏感類數(shù)據(jù)
用戶、學(xué)校、權(quán)限等存在著典型的關(guān)聯(lián)關(guān)系,很適合關(guān)系型數(shù)據(jù)庫處理。其提供的加密、解密功能更是給較為敏感信息的存儲和管理提供了方便。用戶、權(quán)限、交易類數(shù)據(jù)量相對適中,且數(shù)據(jù)檢索需求相對簡單、明確,其中交易類數(shù)據(jù)有較為嚴(yán)格的事務(wù)保障需求,因此MySQL比較適用。MySQL部署:采用主從結(jié)構(gòu)的方式部署,可完全滿足平臺的要求。
(2)NoSQL數(shù)據(jù)庫MongoDB:資源、課程等業(yè)務(wù)數(shù)據(jù)
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,能夠為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。課程、資源等數(shù)據(jù)的元數(shù)據(jù)豐富,對擴(kuò)展的需求較高,而MongoDB模式自由(schema-free)的特點很適合這類業(yè)務(wù)數(shù)據(jù)的存儲。
MongoDB采用集群的方式部署,由3~4臺服務(wù)組成,提供可靠、高性能的數(shù)據(jù)訪問需求,并可根據(jù)需要動態(tài)擴(kuò)容。在云平臺提供MongoDB解決方案的情況下,使用云服務(wù)平臺提供的云MongoDB存儲服務(wù),可提供更加可靠性的數(shù)據(jù)訪問,還可提供更大數(shù)據(jù)量的存儲服務(wù)。
(3)高性能數(shù)據(jù)庫XPE DB:用戶業(yè)務(wù)操作記錄等日志性數(shù)據(jù)
XPE DB采用事件驅(qū)動的方式、基于LOG型的架構(gòu)設(shè)計,其數(shù)據(jù)更新可充分利用硬件資源,以達(dá)到高的存儲性能。XPE DB可達(dá)1Mupdates/second的性能。
對于用戶操作相關(guān)的行為記錄類型的日志型記錄,不僅對存儲的性能有極高的要求,而且對數(shù)據(jù)的完整性也有極高的要求,因此使用XPE DB存儲。
XPE DB部署采用一主一從的方式部署,可滿足業(yè)務(wù)需要。
(4)結(jié)合分布式緩存,降低數(shù)據(jù)庫訪問壓力
分布式緩存,可用于加速網(wǎng)站的訪問速度。Memcached是一個高性能的分布式緩存系統(tǒng),通過在內(nèi)存中緩存數(shù)據(jù)、減輕數(shù)據(jù)庫的壓力,提供動態(tài)數(shù)據(jù)庫,驅(qū)動網(wǎng)站的速度。
業(yè)務(wù)服務(wù)在訪問數(shù)據(jù)時,通過分布式緩存服務(wù),優(yōu)先訪問緩存服務(wù)??纱蟠鬁p輕對數(shù)據(jù)庫的訪問壓力,提高數(shù)據(jù)庫的使用效率。
(5)數(shù)據(jù)備份、異地備份
至少每天完全備份一次。備份的數(shù)據(jù)文件,采用保留最新備份、最近一周的備份,最近一月每周數(shù)據(jù),以及每月最后一天的數(shù)據(jù)。同時,根據(jù)業(yè)務(wù)數(shù)據(jù)的特點,對重要數(shù)據(jù)采用高級別的備份策略。
借助于云服務(wù)平臺的優(yōu)勢,選擇在物理上相距較遠(yuǎn)的數(shù)據(jù)中心作為異地容災(zāi)備份,提高抗自然災(zāi)害的能力。
(6)安全設(shè)置
基于操作系統(tǒng)、網(wǎng)絡(luò)訪問控制,以及數(shù)據(jù)庫本身的權(quán)限功能,進(jìn)行相應(yīng)的安全設(shè)置,確保安全。
3.數(shù)據(jù)庫服務(wù)器
(1)基于Linux部署
MySQL、Mongodb,以及XPE DB均部署在Centos 64位環(huán)境,以確保達(dá)到高性能。
(2)服務(wù)器配置
采用16核、32GB內(nèi)存、300G硬盤高性能配置。
區(qū)域化的課程平臺用戶受眾量大、功能豐富、并發(fā)訪問要求較高,且對信息安全有著嚴(yán)格的要求,對平臺的技術(shù)架構(gòu)、數(shù)據(jù)庫的選用和設(shè)計相應(yīng)也有著很高的要求,都要根據(jù)區(qū)域化用戶體量科學(xué)規(guī)劃,基于成熟、穩(wěn)定、高性能、適用的原則,選用成熟可靠的信息化產(chǎn)品,這樣便于根據(jù)課程平臺業(yè)務(wù)數(shù)據(jù)訪問的特點,以不同的數(shù)據(jù)庫處理不同的業(yè)務(wù)數(shù)據(jù),以滿足平臺對用戶訪問、數(shù)據(jù)存儲要求的多樣化特性。
參考文獻(xiàn):
[1]李漢明,陳振武.區(qū)域教育信息資源共建共享機(jī)制研究[J].龍巖學(xué)院學(xué)報,2010(5):128-131.
[2]朱延寧.互聯(lián)網(wǎng)+背景下教育國際化變革趨勢[J].新教育時代電子雜志(教師版),2017(12).
[3]袁文成.面向IaaS的云計算自適應(yīng)資源管理機(jī)制[D].西安:西北工業(yè)大學(xué),2015.
[4]王敏.分布式網(wǎng)絡(luò)爬蟲的研究與實現(xiàn)[D].南京:東南大學(xué),2017.
[5]黃冰潔.微信公共平臺圖書館閱讀推廣[J].卷宗,2017(29).
(編輯:王天鵬)