許園甫
摘要:eFront是一款支持SCORM標(biāo)準(zhǔn)的高效易用的開(kāi)源學(xué)習(xí)管理系統(tǒng),它基于PHP語(yǔ)言開(kāi)發(fā),擁有漂亮的Ajax圖形界面,使用直觀并支持模塊化擴(kuò)展技術(shù),具有較好的通用性。文章從eFront的基本架構(gòu)組成和網(wǎng)絡(luò)服務(wù)的拓?fù)浣Y(jié)構(gòu)兩個(gè)方面詳細(xì)分析了它的體系結(jié)構(gòu),旨在為更好地使用eFront建立高效通用的網(wǎng)絡(luò)教學(xué)平臺(tái)奠定基礎(chǔ)。
關(guān)鍵詞:eFront;學(xué)習(xí)管理系統(tǒng);網(wǎng)絡(luò)教學(xué);架構(gòu);服務(wù)
中圖分類號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)25-0103-02
Analysis of eFront Architecture of Open Source Learning Management System
XU Yuan-fu
(Guilin Medical University Information Center, Guilin 541004, China)
Abstract: eFront is a efficient and easy to use open source learning management system, which supports SCORM standard. It based on PHP code, with nice Ajax GUI, using intuitive and supports modular extension technology, has good versatility. This paper makes a detailed analysis of eFront architecture from the basic structure and topology of network services, designed to make better use of eFront establish a basis for the general E-Learning platform.
Key words: eFront; Learning Management System; E-Learning; Architecture; Service
網(wǎng)絡(luò)技術(shù)的迅速發(fā)展帶來(lái)了教育信息化的不斷深入,E-Learning(數(shù)字化學(xué)習(xí))系統(tǒng)為網(wǎng)絡(luò)信息化教學(xué)提供了一個(gè)高效便捷、隨時(shí)隨地學(xué)習(xí)的開(kāi)放性平臺(tái)。在E-Learning 領(lǐng)域,存在著多種開(kāi)源、免費(fèi)的學(xué)習(xí)管理系統(tǒng),它們的應(yīng)用領(lǐng)域越來(lái)越廣,涉及教育教學(xué)、人才培訓(xùn)、知識(shí)管理等,eFront就是其中一款高效易用的開(kāi)源學(xué)習(xí)管理系統(tǒng)。
eFront旨在幫助創(chuàng)建一個(gè)具有豐富人機(jī)交互功能的網(wǎng)上課程,它是一個(gè)利用互聯(lián)網(wǎng)作為平臺(tái)傳送教學(xué)內(nèi)容,實(shí)施網(wǎng)絡(luò)教學(xué),進(jìn)行在線交流和學(xué)習(xí)的信息系統(tǒng)。它擁有漂亮的Ajax圖形界面,使用直觀,并且支持SCORM標(biāo)準(zhǔn)(數(shù)字內(nèi)容教材制作和開(kāi)發(fā)的通用標(biāo)準(zhǔn))認(rèn)證,是一個(gè)多語(yǔ)言支持平臺(tái),它能夠讓用戶利用其提供的各種工具來(lái)創(chuàng)建和管理網(wǎng)絡(luò)課程。
在國(guó)外,eFront的應(yīng)用已經(jīng)得到廣泛的好評(píng),對(duì)它的研究也已經(jīng)比較透徹,使其功能日趨完善,成為開(kāi)發(fā)網(wǎng)絡(luò)課程、構(gòu)建網(wǎng)絡(luò)教學(xué)環(huán)境的有力工具。而國(guó)內(nèi)對(duì)網(wǎng)絡(luò)教學(xué)環(huán)境的研究要比國(guó)外晚一些,目前國(guó)內(nèi)應(yīng)用較多的網(wǎng)絡(luò)教學(xué)開(kāi)發(fā)工具是Moddle平臺(tái),對(duì)eFront的研究與應(yīng)用還處在發(fā)展階段,對(duì)它的認(rèn)識(shí)還不夠深入。為了更好地使用eFront來(lái)建立高效通用的網(wǎng)絡(luò)教學(xué)平臺(tái),本文將從eFront的基本架構(gòu)組成和網(wǎng)絡(luò)服務(wù)的拓?fù)浣Y(jié)構(gòu)兩個(gè)方面來(lái)詳細(xì)闡述它的體系結(jié)構(gòu)。
1 eFront的系統(tǒng)架構(gòu)
eFront是采用面向?qū)ο蠓椒ㄔO(shè)計(jì)和基于三層架構(gòu)來(lái)構(gòu)建的,即將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層、邏輯層、數(shù)據(jù)層。三個(gè)層次中,表示層位于頂層,用于接收和顯示用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面;邏輯層處于表示層和數(shù)據(jù)層中間的關(guān)鍵位置,起到數(shù)據(jù)交換中承上啟下的作用,主要負(fù)責(zé)業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實(shí)現(xiàn)等與業(yè)務(wù)邏輯有關(guān)的系統(tǒng)功能;數(shù)據(jù)層位于底層,其功能主要負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問(wèn)和對(duì)數(shù)據(jù)進(jìn)行操作。圖1所示詳細(xì)描述了eFront的三層架構(gòu)。
1) eFront的表示層。表示層在服務(wù)器端建立,是基于HTML代碼和Javascript腳本代碼組成,這些代碼被傳送至客戶端的Web瀏覽器上執(zhí)行,如圖2所示。表示層使用PHP模板引擎Smartyfen分離邏輯代碼和外在內(nèi)容,它提供了一種易于管理與使用的方法,將原本與HTML代碼混雜在一起PHP代碼邏輯和前端頁(yè)面內(nèi)容設(shè)計(jì)分離。為了更好地支持Ajax技術(shù),Javascript的基礎(chǔ)類庫(kù)PrototypeJS、與之等價(jià)的GUI圖形庫(kù)以及能提供高交互性的可視化組件Scriptaculous程序庫(kù)被廣泛地應(yīng)用于整個(gè)軟件系統(tǒng)。此外,表示層還使用了一個(gè)輕量級(jí)的基于瀏覽器的所見(jiàn)即所得編輯器TinyMCE來(lái)創(chuàng)建用戶自定義內(nèi)容。
2) eFront的邏輯層。邏輯層完全采用PHP代碼編寫(xiě),負(fù)責(zé)定義服務(wù)器端的功能。它通過(guò)Ajax查詢形式與表示層進(jìn)行通信。如圖3所示,邏輯層由多個(gè)不同的互操作組件組成,以eFront系統(tǒng)類為核心,每個(gè)系統(tǒng)類代表一個(gè)特定的實(shí)體,例如一個(gè)用戶,一門(mén)課程或一個(gè)文件等,論壇和聊天功能被從核心邏輯中分離出來(lái)。邏輯層使用PHP應(yīng)用擴(kuò)展庫(kù)PEAR幫助開(kāi)發(fā)者編寫(xiě)可移植、可重用的代碼;此外,還集成了用于生成聯(lián)機(jī)PDF文檔的TCPDF庫(kù)和用于動(dòng)態(tài)創(chuàng)建Flash圖表的PHP-OFC庫(kù)。程序邏輯還允許用戶可以根據(jù)各自的功能需求擴(kuò)展自定義模塊,并導(dǎo)入eFront系統(tǒng)。
3) eFront的數(shù)據(jù)層。數(shù)據(jù)層使用AdoDB庫(kù)作為中間接口,將所有來(lái)自邏輯層的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,如圖4所示。它可以很容易地將應(yīng)用擴(kuò)展到除了MySQL之外的其他數(shù)據(jù)庫(kù)系統(tǒng)中。另外,考慮到用戶的一些特殊查詢要求,數(shù)據(jù)層還支持LDAP(Lightweight Directory Access Protocol,輕量目錄訪問(wèn)協(xié)議)數(shù)據(jù)源。為了實(shí)現(xiàn)LDAP數(shù)據(jù)源的連接,系統(tǒng)支持包括Active Directory活動(dòng)目錄在內(nèi)的所有主要的LDAP目錄,但只限于只讀訪問(wèn)。最終,由用戶生成的數(shù)據(jù)內(nèi)容可以存儲(chǔ)在文件系統(tǒng)中的物理文件上。
2 eFront的網(wǎng)絡(luò)服務(wù)拓?fù)浣Y(jié)構(gòu)
如圖5所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)描述了一個(gè)eFront學(xué)習(xí)管理系統(tǒng)的服務(wù)如何“橫向”擴(kuò)展支持更多的用戶和內(nèi)容。
eFront的這種拓?fù)浣Y(jié)構(gòu)是基于假設(shè)所有的用戶都被一個(gè)集中的基礎(chǔ)架構(gòu)所支持,包括前端Web服務(wù)和后臺(tái)數(shù)據(jù)服務(wù)兩個(gè)組成部分。前端Web服務(wù)是一個(gè)支持網(wǎng)絡(luò)負(fù)載平衡的Web服務(wù)器集群體系結(jié)構(gòu),為了解決安裝防火墻后外部網(wǎng)絡(luò)的訪問(wèn)用戶不能訪問(wèn)內(nèi)部網(wǎng)絡(luò)服務(wù)器的問(wèn)題,設(shè)立了一個(gè)介于非安全系統(tǒng)與安全系統(tǒng)之間的專用網(wǎng)絡(luò)區(qū)域DMZ(Demilitarized zone,這里稱“隔離區(qū)”)。這是一種安全配置,為要保護(hù)的內(nèi)部網(wǎng)絡(luò)增加一道額外的安全防線。在這個(gè)網(wǎng)絡(luò)區(qū)域內(nèi)可以放置一些必須公開(kāi)的服務(wù)器設(shè)備,如Web服務(wù)器、FTP服務(wù)器、E-Mail服務(wù)器和流媒體服務(wù)器等。將eFront數(shù)字化學(xué)習(xí)軟件系統(tǒng)安裝到Web服務(wù)器上,在投入運(yùn)行使用之前,利用E-Learning QC Web服務(wù)器進(jìn)行質(zhì)量檢測(cè),學(xué)習(xí)者和教師通過(guò)互聯(lián)網(wǎng)或互聯(lián)網(wǎng)服務(wù)商提供的網(wǎng)絡(luò)云端,利用網(wǎng)絡(luò)瀏覽器訪問(wèn)eFront服務(wù)。后臺(tái)數(shù)據(jù)服務(wù)包括數(shù)字化學(xué)習(xí)系統(tǒng)所需的數(shù)據(jù)庫(kù)服務(wù)器和文件服務(wù)器,使用高性能的磁盤(pán)陣列存儲(chǔ)數(shù)據(jù)文件,以集群的形式處理數(shù)據(jù)冗余和文件復(fù)制,從而實(shí)現(xiàn)數(shù)據(jù)文件的共享和訪問(wèn)。
用戶在使用eFront服務(wù)時(shí),由于所有與互聯(lián)網(wǎng)通信的流量需經(jīng)過(guò)本地局域網(wǎng)的路由器,因此通常采用防火墻技術(shù)來(lái)保障網(wǎng)絡(luò)系統(tǒng)的安全,防止未經(jīng)授權(quán)的網(wǎng)絡(luò)訪問(wèn)。防火墻可以由軟件或硬件實(shí)現(xiàn),或者由軟、硬件設(shè)備組合而成,它還可以限制通過(guò)各種網(wǎng)絡(luò)配置的數(shù)據(jù)流入流出。在系統(tǒng)防火墻方案中,可以設(shè)置兩個(gè)防火墻,外部防火墻抵擋外部網(wǎng)絡(luò)的攻擊,并管理所有外部網(wǎng)絡(luò)對(duì)DMZ的訪問(wèn)。內(nèi)部防火墻管理DMZ對(duì)于內(nèi)部網(wǎng) 絡(luò)的訪問(wèn),當(dāng)外部防火墻失效的時(shí)候,它還可以起到保護(hù)內(nèi)部網(wǎng)絡(luò)的功能。
3 結(jié)論
通過(guò)上述對(duì)eFront學(xué)習(xí)管理系統(tǒng)體系結(jié)構(gòu)的分析可知,eFront幾乎可以在任何支持PHP的平臺(tái)上安裝運(yùn)行,它具有全面的數(shù)據(jù)庫(kù)抽象層,幾乎支持所有的主流數(shù)據(jù)庫(kù)。eFront還能實(shí)現(xiàn)跨平臺(tái)運(yùn)行,從單純的PC終端擴(kuò)充到能支持移動(dòng)終端,可以集成第三方系統(tǒng)通過(guò)它的API并支持模塊化擴(kuò)展技術(shù),因此具有較好的通用性。本文的論述將對(duì)進(jìn)一步研究和使用eFront來(lái)構(gòu)建網(wǎng)絡(luò)教學(xué)平臺(tái)具有很好的參考價(jià)值和意義。
參考文獻(xiàn):
[1] 陳笑怡,王敏娟,陳澤宇,劉剛. 世界知名學(xué)習(xí)管理系統(tǒng)(LMS)比較分析[C]. 2010 Third International Conference on Education Technology and Training(ETT),2010:192-197.
[2] 肖海鵬,謝銘瑤. 基于eFront的《計(jì)算機(jī)基礎(chǔ)》網(wǎng)絡(luò)課程的建設(shè)研究[J].電腦知識(shí)與技術(shù),2011,7(29):7309-7311.
[3] Ozkan B.,"How to effectively use free and open source software in education" In C. Bonk et al. (Eds.),Proceedings of World Conference on E-Learning in Corporate,Government,Healthcare,and Higher Education,pp. 1171-1175. 2008.
[4] eFront Architecture[OL]. http://wiki.efrontlearning.net/.