陳嘉發
(惠州衛生職業技術學院,廣東 惠州 516025)
云計算技術下Moodle的應用研究
陳嘉發
(惠州衛生職業技術學院,廣東 惠州 516025)
云計算技術和Moodle的出現為課程教學改革創新提供新的思路。分析Moodle在應用過程中存在的問題,提出基于云計算技術優化Moodle平臺的方法。
云計算;Moodle;應用研究
Moodle是基于建構主義教育理論開發的課程管理系統軟件,具有源碼開放、模塊化設計的特點,它作為一款優秀的E-learning管理工具在課程教學改革創新方面發揮著重要作用。然而,Moodle畢竟不是企業級團隊開發的軟件,自然會存在一些缺陷和問題。
1.1 運行環境配置復雜
Moodle可以基于WindowsWNMP、Linux LNMP兩種環境架構運行,所需要的支撐軟件主要由PHP、MySQL、Nginx等開源軟件構成。一方面,由于開源軟件一般缺少技術支持和說明文檔,在出現故障或錯誤時只能由用戶自己解決問題,技術要求比較高。盡管網絡上早已存在XAMPP一體建站集成軟件包供用戶快速構建運行環境,但必須手動關閉被占用的80端口,否則影響提供http服務的Nginx軟件的開啟;另一方面,Moodle對開源組件的版本有嚴格限制,XAMPP集成環境嚴重滯后于Moodle的更新發展,無法滿足實際使用要求。
1.2 高成本的建設和維護
Moodle在本地服務器上的部署建設要面臨硬件資源和軟件管理兩個問題。服務器和網絡設備的購置、系統運行維護需要技術人員專門負責管理,還要安裝入侵檢測和防火墻設備等來保障服務器數據的安全性和系統的穩定性。Moodle系統占用公網IP的端口而且對帶寬要求較高,將直接影響系統的響應速度和用戶體驗。單一化服務器運行無法實現負載均衡,購置多臺服務器雖能分攤負載但會造成資源浪費。
1.3 并發響應能力不足
單一服務器負載能力有限,無法實現負載均衡。筆者以惠普ProLiant360 G6服務器為測試對象,通過Apache Bench工具使用命令“-ab-c 100-n 10000 http://127.0.0.1:9394/index.php”模擬一萬個并發請求對Moodle系統進行壓力測試,測試結果顯示每秒并發線程請求響應請求數89.5個,響應能力無法滿足實際使用需求。
1.4 數據無法在線遷移
單一化的本地服務器無法實現數據在線遷移。本地服務器部署的Moodle系統必須將安裝目錄下的NginxMoodleData、MySQLdata以及Nginxhtml3個文件夾完整復制到目標路徑來實現數據庫的轉移[1]。另外,系統管理員需要重新寫入當前服務器數據存儲的新路徑,不利于數據備份和遷移。
1.5 中文亂碼問題
Moodle系統的用戶管理默認分為單個添加和批量上傳。由于Moodle的原生語言為英語,在批量上傳中文用戶賬戶數據時會出現“列數不連續”的問題和產生中文亂碼。添加中文用戶只能單個添加,嚴重影響了用戶批量管理的功能。
2.1 云計算技術介紹
云計算技術是一種基于互聯網的計算方式,運營商通過建立網絡服務器集群,以有償方式向各種不同類型用戶提供在線軟件服務、硬件租借、數據存儲、計算分析等不同類型的服務,用戶能夠不受地理空間限制,只需以商業租賃方式便可隨時隨地從云計算服務運營商處租賃基礎設施、運算處理能力等使用權。云計算技術的出現實現了計算資源的實現形態、計算服務的應用模式的根本性變革[2]。
2.2 Moodle結合云計算技術的優勢
2.2.1 部署簡單,提高設備資源利用率 云計算技術吸收了分布式計算、虛擬化、并行處理和網格計算等技術優點[3],只要支付相應的租金即可輕松獲取存儲資源和服務器等硬件資源,從而降低教學信息化的建設成本。以阿里云ECS服務器(Elastic Compute Service)為例,彈性IP地址隨ECS服務器建立由云計算服務運營商提供,無需占用本地網絡IP端口,不需要考慮網絡帶寬資源,更不需要額外購置網絡設備。
2.2.2 管理維護簡單 云計算技術下,Moodle用戶不需要負責硬件管理和運行維護等問題。以開源的Linux系統環境為例,用戶通過云計算控制后臺遠程登錄服務器,通過安裝SHH軟件包后,在本地計算機安裝Xshell即可實現遠程操作和管理服務器,通過安裝Xftp可以實現傳送文件。
2.2.3 實現在線遷移數據,提高系統安全性 單一化的本地服務器上無法實現Moodle自帶“數據庫導出”功能,在云計算技術下能夠實現將本數據庫所有的數據傳送到另一個數據服務器。此外,在云服務器ECS上部署則能夠直接使用鏡像快照功能,實現云服務器上的磁盤自動化數據備份。如果發生病毒入侵或黑客攻擊等造成數據丟失,用戶可借助快照回滾功能迅速恢復到某一個快照時間點的數據,以保障數據庫安全??偠灾朴嬎慵夹g的數據存儲遠比個人用戶的數據存儲安全。
2.2.4 具備大數據分析能力 Moodle用戶能夠利用云計算技術通過建立一個或多個ECS實例組成Hadoop集群或Spark集群,通過E-MapReduce將數據導入和導出到其他的云數據存儲系統和數據庫系統中,為用戶提供集群、作業、數據等管理的一站式大數據處理分析服務。
2.2.5 友好的支撐移動學習 在云計算技術下,數字化學習服務和數據可以在最大范圍內共享,除了傳統的B/S瀏覽器訪問模式,還提供通過手機APP訪問的客戶端模式,方便學習者隨時隨地使用Moodle展開學習。
3.1 基于云計算PaaS服務建立Moodle
云計算的服務形式包括軟件即服務SaaS(Software as a Service),平臺即服務PaaS(Platform as a Service),基礎設施服務IaaS(Infrastructure as a Service)。通過實踐證明,基于PaaS服務形式,選擇簡單高效、處理能力可彈性伸縮的阿里云服務器ECS的云計算服務最為合適。筆者以noVNC的CentOS7.1為Moodle系統環境,該版本集成了運行必備的各類庫文件,免除了運行環境的復雜配置。
3.2 Moodle應用的優化研究
3.2.1 提高響應速度 Moodle系統默認運行狀態只調用單個php-cgi進程響應web頁面的http請求,一旦并發請求數量超過了500個,PHP就發生崩潰停止運行。通過加入php-fpm進程維持器,始終維持8個php-cgi進程以保證Moodle運行的高并發響應。
3.2.2 提升數據讀寫速度 數據庫讀寫的快慢直接影響Moodle系統的響應速度和用戶體驗,主要通過改寫Moodle的寫入方式及增大MySQL緩存池容量可實現速度提升。首先,通過打開mysqlinmy.ini配置文件,修改語句“innodb_buffer_pool_size= 4096M”中的內存值,最好設置為物理服務器內存的50%。其次,將MySQL數據庫的寫入方式從默認的寫入硬盤更改為寫入緩存,修改語句的數值“innodb_flush_log_at_trx_commit=2”(其中1表示寫入硬盤,2表示寫入緩存),實踐效果表明可以大幅度提升Moodle響應速度。最后,開啟Ajax和JavaScript提升頁面響應速度。在 Moodle的開發選項中開啟緩存 Javascript Cachejs,修改后數據能夠與服務器保持快速穩定的通訊更新狀態,緩存和壓縮能大大提升頁面的加載速度。
3.2.3 解決中文亂碼問題 Moodle系統困擾管理員最大的問題就是批量上傳用戶出現亂碼的問題。經過實踐證明,通過修改系統目錄Moodle ginxhtmllib代碼庫里的csvlib.php文件中的部分代碼,可以實現中文用戶名單的批量上傳。具體方法是,文件中在第129行和第249行前面添加下面代碼。

3.3 實際運行情況
在云計算技術服務中選擇與HP ProLiant360 G6配置相似的ESC服務器部署Moodle,經過優化設置后的并發響應速度達到了238個并發數,性能得到了大幅度提升。
結合云計算技術構建Moodle平臺具有巨大的優勢,既能解決設備資源投入和管理維護的問題,又能實現在線遷移數據和大數據分析。通過研究實踐,找出優化方案和解決Moodle自身的問題和缺陷,擺脫Moodle系統過去并發線程響應慢以及用戶體驗差的情況,發揮出其應有的性能。
[1]曾棕根.Moodle災難恢復與應對計劃[J].計算機應用與軟件,2013(10):120-122.
[2]梁元.基于云計算環境下的可信平臺設計[D].成都:電子科技大學,2012.[3]黃麗芳,曾健民,高薇,等.云計算在高校教育中的應用研究[J].安陽師范學院學報,2015(5):52-54.■
G420
B
1671-1246(2017)10-0156-02