李 杰 劉夢(mèng)赤
(武漢大學(xué)計(jì)算機(jī)學(xué)院 湖北 武漢 430000)
基于INM的在線教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
李 杰 劉夢(mèng)赤
(武漢大學(xué)計(jì)算機(jī)學(xué)院 湖北 武漢 430000)
為向各大高校提供一個(gè)功能完善且通用的在線教學(xué)平臺(tái)、充分結(jié)合在線學(xué)習(xí)和線下課堂教學(xué)的方式為教師和學(xué)生提供豐富的 “教”、“學(xué)”功能模塊,設(shè)計(jì)和開(kāi)發(fā)在線教學(xué)系統(tǒng)Weblearn。系統(tǒng)使用Nginx、Memcached構(gòu)建了多服務(wù)器的分布式集群,實(shí)現(xiàn)高并發(fā)下的負(fù)載均衡,提高系統(tǒng)可用性;以信息網(wǎng)模型INM(Information Networking Model)作為底層存儲(chǔ)數(shù)據(jù)庫(kù),利用其關(guān)聯(lián)存儲(chǔ)、無(wú)模式存儲(chǔ)等特點(diǎn),采用級(jí)聯(lián)查詢(xún)和動(dòng)態(tài)建模的方式提高系統(tǒng)的查詢(xún)效率和可擴(kuò)展性。提出INM在實(shí)際應(yīng)用中的數(shù)據(jù)庫(kù)建模方法及數(shù)據(jù)庫(kù)訪問(wèn)方法,簡(jiǎn)化數(shù)據(jù)庫(kù)建模過(guò)程。目前系統(tǒng)已經(jīng)在武漢大學(xué)、湖北大學(xué)、加拿大卡爾頓大學(xué)投入使用,使用情況良好。
在線教學(xué)平臺(tái) 數(shù)據(jù)庫(kù) INM 建模 分布式
E-learning自1999年在美國(guó)加州的online Learning大會(huì)上第一次提出到如今發(fā)展迅速,據(jù)估計(jì)全球有超過(guò)20%的企業(yè)運(yùn)用了在線學(xué)習(xí)模式[1],約46%的大學(xué)生至少在線學(xué)習(xí)了一門(mén)課程[2],基于Web的在線教育也越來(lái)越受到重視[3-4]。目前網(wǎng)絡(luò)中有許多在線學(xué)習(xí)平臺(tái),從使用者角度可以分為三類(lèi):大規(guī)模網(wǎng)絡(luò)開(kāi)放式課程平臺(tái)Massive Open Online Courses (MOOC)[5-6]、商用課程管理平臺(tái)Commercial Course Management System (CCMS)和開(kāi)源學(xué)習(xí)管理系統(tǒng)Open Source Course Management System(OSCMS)。
大規(guī)模網(wǎng)絡(luò)開(kāi)放課程又稱(chēng)慕課,它是由很多愿意分享和協(xié)作以便增強(qiáng)知識(shí)的學(xué)習(xí)者組成,是一種針對(duì)大眾人群的在線課堂,常見(jiàn)的MOOC系統(tǒng)有Coursera、可汗學(xué)院、edX、Global Education、Course Hero等。它有兩個(gè)顯著的提點(diǎn),一是MOOC的參與者不必是在校注冊(cè)學(xué)生,它是一個(gè)大眾共享平臺(tái);二是MOOC中的課堂是針對(duì)于不確定的參與者而設(shè)計(jì)的。Blackboard[7-8]是最具有代表性的商用課程管理學(xué)習(xí)平臺(tái),由美國(guó)Bakckboard公司開(kāi)發(fā)。該網(wǎng)絡(luò)教學(xué)平臺(tái)以課程為中心集成網(wǎng)絡(luò)“教”和“學(xué)”的環(huán)境。教師可以在平臺(tái)上開(kāi)設(shè)網(wǎng)絡(luò)課程,學(xué)習(xí)者可以自主選擇要學(xué)習(xí)的課程并自主進(jìn)行課程內(nèi)容學(xué)習(xí)。不同學(xué)習(xí)者之間以及教師和學(xué)習(xí)者之間可以根據(jù)教、學(xué)的需要進(jìn)行討論、交流。Blackboard功能相對(duì)完善但是使用時(shí)需要付費(fèi)和定制,操作相對(duì)比較復(fù)雜。常見(jiàn)的開(kāi)源學(xué)習(xí)管理系統(tǒng)有Moodle、Sakai、ILIAS、Claroline等[9,16]。這些平臺(tái)最大的優(yōu)勢(shì)在于開(kāi)源和免費(fèi),由于其開(kāi)放性、共享性、可根據(jù)用戶(hù)需求修改組合等優(yōu)點(diǎn),為E-learning項(xiàng)目的實(shí)施提供了低成本的平臺(tái)解決方案。
以上的幾類(lèi)在線教學(xué)平臺(tái)為用戶(hù)提供了豐富的在線學(xué)習(xí)途徑和資源。但這些平臺(tái)更多都是強(qiáng)調(diào)個(gè)人自主學(xué)習(xí)以及開(kāi)放性,沒(méi)有充分結(jié)合線下課堂的教學(xué)方式,并且對(duì)于高校和企業(yè)單位不具備通用的管理功能和內(nèi)部在線學(xué)習(xí)機(jī)制。目前國(guó)內(nèi)大部分的高校雖然都有自己的課程和人員管理系統(tǒng),但都沒(méi)有為教師、學(xué)生提供較好的在線教學(xué)環(huán)境,主要采用的還是傳統(tǒng)的線下課堂教學(xué)方式,并且不同高校間也沒(méi)有一個(gè)較好的交流平臺(tái)。所以為各高校提供一個(gè)通用且功能完善的在線課程管理平臺(tái)是有意義的,為此基于INM[10]設(shè)計(jì)和實(shí)現(xiàn)了在線教學(xué)系統(tǒng)Weblearn。該平臺(tái)的目的是為了替代各校自己獨(dú)立開(kāi)發(fā)的課程管理系統(tǒng)或者相關(guān)軟件系統(tǒng),為教師和學(xué)生提供更加豐富和完善的在線“教”、“學(xué)”功能模塊,結(jié)合線下課堂學(xué)習(xí)為教師和學(xué)生構(gòu)建一個(gè)良好的交流學(xué)習(xí)環(huán)境,加強(qiáng)各大高校間跨學(xué)校的協(xié)作與交流,支持課程對(duì)外開(kāi)放,提供跨校學(xué)習(xí)平臺(tái),在各大高校間建立起一個(gè)多元化的學(xué)習(xí)環(huán)境。
INM又稱(chēng)信息網(wǎng)模型[10],是一個(gè)面向語(yǔ)義的數(shù)據(jù)庫(kù)模型。它能自然直接地表示對(duì)象間復(fù)雜的語(yǔ)義關(guān)系和動(dòng)態(tài)的上下文相關(guān)信息。主要特點(diǎn)有:面向?qū)ο蟠鎯?chǔ),讀取速度快且支持跨對(duì)象級(jí)聯(lián)查詢(xún)[12];自動(dòng)維護(hù)關(guān)系的一致性[13],能直觀地對(duì)概念模型進(jìn)行建模;支持無(wú)模式數(shù)據(jù)添加,實(shí)體信息完善可以不受模式定義的制約;特有的信息網(wǎng)絡(luò)結(jié)構(gòu)特別適合于社會(huì)網(wǎng)絡(luò)等領(lǐng)域的數(shù)據(jù)建模以及不同實(shí)體間關(guān)系的快速定位,對(duì)關(guān)聯(lián)數(shù)據(jù)有較強(qiáng)的處理能力;這些特點(diǎn)使得INM在數(shù)據(jù)庫(kù)建模過(guò)程中對(duì)實(shí)體間的關(guān)系處理以及實(shí)體復(fù)雜信息存儲(chǔ)方面與關(guān)系型數(shù)據(jù)庫(kù)有著很大的不同,它更加直觀和簡(jiǎn)潔。
1.1 實(shí)體間關(guān)系的建模
實(shí)體間的關(guān)系是相互的,例如圖1中實(shí)體University與實(shí)體Faculty間是包含關(guān)系,相應(yīng)的也可以所說(shuō)Faculty屬于University,將一個(gè)關(guān)系的另一角度的表述稱(chēng)之為“逆關(guān)系”。在關(guān)系模型中為了表示實(shí)體對(duì)象間的相互依賴(lài)關(guān)系,是通過(guò)定義鍵(Key)和外鍵(Foreign Key)的方式建立不同對(duì)象之間的相互聯(lián)系,不支持直接的定義逆關(guān)系并且數(shù)據(jù)庫(kù)的建模受到建表次序的限制,不能自動(dòng)維護(hù)相互關(guān)系的一致性。例如在表University未創(chuàng)建之前是無(wú)法為Faculty創(chuàng)建對(duì)University的引用。而INM支持逆關(guān)系定義,并且逆關(guān)系僅需要單向定義,相關(guān)的對(duì)象和逆向關(guān)系會(huì)自動(dòng)的生成和維護(hù)。這也使得INM建模可以從任意實(shí)體的角度出發(fā)描述相關(guān)關(guān)系。例如University和Faculty的關(guān)系有兩種描述方式:
(1) Create class University[
contain have(inverse belongTo)(1∶N):Faculty];
(2) Create class Faculty[
normal belongTo(inverse have)(N∶1):University];
圖1 Weblearn中部分實(shí)體關(guān)系圖
上述兩句建模語(yǔ)言執(zhí)行后有相同的效果,執(zhí)行其中一句會(huì)自動(dòng)的創(chuàng)建University對(duì)象和Faculty對(duì)象并建立起相互間的關(guān)系,圖2是語(yǔ)句執(zhí)行后兩者的結(jié)構(gòu)。INM中定義了多種類(lèi)型的關(guān)系,常見(jiàn)的有:一般關(guān)系(normal)、包含關(guān)系(contain)、角色關(guān)系(role)和多元關(guān)系(nary)等。其中contain關(guān)系用于描述兩個(gè)實(shí)體間的從屬關(guān)系,role關(guān)系用于描述實(shí)體的上下文語(yǔ)義信息,多元關(guān)系用于描述多個(gè)實(shí)體間關(guān)聯(lián)關(guān)系。利用這些關(guān)系定義可以直觀地對(duì)實(shí)體間的關(guān)系進(jìn)行建模。例如圖1中Weblearn系統(tǒng)用戶(hù)與課程班級(jí)之間復(fù)雜語(yǔ)義關(guān)系的概念模型,一個(gè)班級(jí)中用戶(hù)分為三種角色:教師、學(xué)生和助教。Weblearn系統(tǒng)中并不嚴(yán)格的區(qū)分每一個(gè)用戶(hù)賬號(hào)是教師賬號(hào)、學(xué)生賬號(hào)或者助教賬號(hào),一個(gè)用戶(hù)可以有多種角色,角色的確定依賴(lài)于所在的班級(jí)。在關(guān)系模型中為了表示User與Section(班級(jí))間的這種關(guān)系需要建立三個(gè)額外的二維表用于表示兩者間的聯(lián)系:
TeachSection ( sectionId,userId,…);
SelectSection ( sectionId,userId,…);
AssistSection ( sectionId,userId,…);
圖2 大學(xué)與學(xué)院關(guān)系結(jié)構(gòu)
額外的記錄表不僅使得建模復(fù)雜度增加并且弱化了班級(jí)與用戶(hù)間直觀的聯(lián)系,這種情況下通過(guò)表Section是無(wú)法直觀地看出用戶(hù)所擔(dān)任的角色。相對(duì)而言INM中可以使用role關(guān)系較好解決這類(lèi)關(guān)系的建模。表1是對(duì)圖1實(shí)體關(guān)系圖的建模語(yǔ)言及結(jié)果,其中Section建模完成后,會(huì)自動(dòng)創(chuàng)建User及其子類(lèi)Teacher、Student和Assistant,并構(gòu)建相互間的關(guān)聯(lián)關(guān)系。
表1 對(duì)圖1的建模及結(jié)果
通過(guò)這個(gè)例子可以看到,基于INM的數(shù)據(jù)庫(kù)建模只需要依次對(duì)概念模型中所有實(shí)體進(jìn)行創(chuàng)建,并利用INM定義的各種類(lèi)型的關(guān)系(normal / contain / role / nary)聲明當(dāng)前實(shí)體與其他實(shí)體間的關(guān)系即可完成建模,兩個(gè)實(shí)體間關(guān)系的聲明可以不同角度單方面定義也可重復(fù)定義。相對(duì)于關(guān)系模型的建模過(guò)程,基于INM的建模無(wú)需將復(fù)雜關(guān)系提取出來(lái)進(jìn)行額外的聲明,能直觀地對(duì)概念模型進(jìn)行映射,保留了實(shí)體間語(yǔ)義信息,從而簡(jiǎn)化整個(gè)數(shù)據(jù)庫(kù)建模過(guò)程。
1.2 實(shí)體復(fù)雜信息建模
在1.1節(jié)中描述了基于INM對(duì)概念模型中實(shí)體間關(guān)系的建模,可以發(fā)現(xiàn)關(guān)系及逆關(guān)系的定義使得一個(gè)實(shí)體類(lèi)內(nèi)聚了所有與其他實(shí)體間的關(guān)系定義。對(duì)于實(shí)體屬性的定義和構(gòu)建并沒(méi)有提及,在INM中基本屬性的定義和關(guān)系模型類(lèi)似,支持String、url、int、text、date等類(lèi)型的數(shù)據(jù)。不同點(diǎn)在于INM定義了復(fù)雜屬性和組合關(guān)系來(lái)描述一些相對(duì)復(fù)雜的實(shí)體信息。
考慮如下情況,系統(tǒng)每個(gè)用戶(hù)都有著自己的網(wǎng)盤(pán)空間上傳自己的資源,數(shù)據(jù)庫(kù)在記錄用戶(hù)資源(personalResource)不能只記錄文件名稱(chēng),還需要記錄上傳時(shí)間、存儲(chǔ)路徑、下載狀態(tài)等信息。同樣一個(gè)人在擔(dān)任不同角色時(shí)有自己獨(dú)特的信息。如表2所示,這些信息都可以拆解為多個(gè)屬性值,在關(guān)系模型中要表示這些復(fù)雜屬性,每個(gè)復(fù)雜屬性就需要建立一個(gè)二維表進(jìn)行存儲(chǔ)。而在INM中,可以直接使用復(fù)雜屬性的定義將數(shù)據(jù)內(nèi)聚,以personalResource為例聲明如下:
Create class User[
@name:string,
@personalResource*:[
@fileType:{“txt”,”word”,”pdf”,”xsl”},
@state:{“public”,”private”},
@fileName:string,
@path:string,
@uploadTime:date],
……];
表2 可拆解屬性信息
其中personalResource就是復(fù)雜屬性的定義,該屬性由多條簡(jiǎn)單屬性組成。一個(gè)人personalResource元組就是一個(gè)記錄,每個(gè)用戶(hù)對(duì)象可持有多個(gè)這樣的元組記錄。除此之外INM還定義了組合關(guān)系、關(guān)系屬性[11]等用于描述實(shí)體對(duì)象的信息。
1.3 動(dòng)態(tài)建模
通常在數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)過(guò)程中,向數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí),插入對(duì)象的屬性和內(nèi)容都受到對(duì)應(yīng)數(shù)據(jù)庫(kù)模式定義的制約。INM支持無(wú)模式數(shù)據(jù)添加,允許向?qū)嵗龑?duì)象中插入模式未定義的屬性和關(guān)系信息并自動(dòng)完善模式定義。例如對(duì)于2.2節(jié)中User的模式定義,假設(shè)User只定義了name以及personalResource屬性,執(zhí)行以下實(shí)例插入語(yǔ)句:
insert User “Peter”[@newAttr:”for Test”];
當(dāng)允許無(wú)模式插入時(shí),該語(yǔ)句能正常執(zhí)行,在插入實(shí)例Peter的同時(shí)INM會(huì)自動(dòng)在模式User中添加@newAttr:string屬性聲明,實(shí)現(xiàn)數(shù)據(jù)和模式的動(dòng)態(tài)變化。這一特點(diǎn)使得數(shù)據(jù)庫(kù)有著更強(qiáng)的可擴(kuò)展性。
2.1 用戶(hù)角色設(shè)計(jì)及特點(diǎn)
和常見(jiàn)的在線教學(xué)系統(tǒng)類(lèi)似,Weblearn系統(tǒng)中除了基本的系統(tǒng)管理員、教師、學(xué)生幾種角色之外,也額外添加了助教角色,但不同點(diǎn)在于Weblearn用戶(hù)角色環(huán)境依賴(lài)。所謂用戶(hù)角色環(huán)境依賴(lài)是指用戶(hù)在注冊(cè)時(shí)不進(jìn)行角色區(qū)分(管理員除外),用戶(hù)的角色根據(jù)用戶(hù)所進(jìn)入的班級(jí)類(lèi)型而定。在系統(tǒng)中一個(gè)用戶(hù)有三個(gè)可能的班級(jí)列表:創(chuàng)建的班級(jí)(Created Section)、加入的班級(jí)(Selected Section)、助教班級(jí)(Assistant Section)。當(dāng)用戶(hù)進(jìn)入不同類(lèi)型的班級(jí)所擔(dān)任的角色隨之而變化,所對(duì)應(yīng)的功能權(quán)限也會(huì)發(fā)生相應(yīng)的改變,如表3所示用戶(hù)進(jìn)入到不同班級(jí)后所擔(dān)任的角色。這一特性意味一個(gè)用戶(hù)賬號(hào)可以擔(dān)任多重角色,聚合更多更豐富的信息,功能不再單一。
表3 角色定位
表4列出了Weblearn中不同角色的功能權(quán)限,其中系統(tǒng)管理員分為三個(gè)級(jí)別:頂級(jí)管理員、校級(jí)管理員、院級(jí)管理員;權(quán)限由高到低分級(jí)管理。值得一提的是Weblearn系統(tǒng)為各級(jí)管理員都提供了強(qiáng)大的信息批量導(dǎo)入功能以方便信息的轉(zhuǎn)移和添加,并且管理員模塊支持功能的定制,管理員可以根據(jù)所在學(xué)校和學(xué)院的標(biāo)準(zhǔn)修改和添加相應(yīng)功能模塊。
表4 角色權(quán)限列表
2.2 主要功能模塊設(shè)計(jì)
圖3是Weblearn在線學(xué)習(xí)平臺(tái)的主要功能結(jié)構(gòu)圖,按功能性質(zhì)可以將所有功能模塊劃分為三個(gè)部分:管理模塊、以“課程”為中心的教學(xué)功能模塊以及搜索系統(tǒng)。另外,在詳細(xì)介紹前還要區(qū)分Weblearn系統(tǒng)中“課程”和“班級(jí)”兩個(gè)概念。如圖4所示,一門(mén)相同的課程可以有多個(gè)不同的班級(jí),我們將對(duì)應(yīng)著相同課程的班級(jí)稱(chēng)為“同源班級(jí)”。接下來(lái)是各模塊功能詳解。
圖3 系統(tǒng)功能結(jié)構(gòu)圖
圖4 課程-班級(jí)關(guān)系圖
1) 管理模塊
Weblearn管理功能主要體現(xiàn)在個(gè)人的自主化管理以及面向?qū)W校的系統(tǒng)管理兩個(gè)部分,如圖3所示,“管理系統(tǒng)”模塊和“個(gè)人中心”模塊分別對(duì)應(yīng)于面向?qū)W校的系統(tǒng)管理和個(gè)人自主管理。個(gè)人中心匯聚和統(tǒng)計(jì)用戶(hù)所有相關(guān)數(shù)據(jù)方便用戶(hù)進(jìn)行統(tǒng)一管理,用戶(hù)可以在個(gè)人中心查看課程和班級(jí)列表;查看最動(dòng)態(tài);查看個(gè)人信息;管理個(gè)人資源;在線選課;查看留言;修改個(gè)人信息等。特別需要說(shuō)明的是在個(gè)人信息管理部分基于INM無(wú)模式數(shù)據(jù)插入的特點(diǎn),實(shí)現(xiàn)了用戶(hù)個(gè)性化信息設(shè)置功能。系統(tǒng)管理模塊實(shí)行分級(jí)管理方式,不僅提供了基本的課程、班級(jí)、人員管理功能,還添加了信息批量導(dǎo)入、功能定制等功能。
2) 教學(xué)功能模塊
教學(xué)功能模塊是整個(gè)系統(tǒng)的核心,它負(fù)責(zé)為教師和學(xué)生提供豐富方便的教學(xué)工具。如圖3所示,Weblearn核心教學(xué)功能模塊由圍繞“課程”開(kāi)發(fā)的課程中心、任務(wù)系統(tǒng)、在線測(cè)試、課程論壇和預(yù)約系統(tǒng)五大模塊組成。
(1) 課程中心是課程信息管理和資源管理的中心,教師負(fù)責(zé)整個(gè)課程班級(jí)的信息資源管理供學(xué)生查看和使用,主要功能如圖5所示。同其他平臺(tái)相比,課程中心有兩個(gè)突出的特點(diǎn),一是支持不同班級(jí)和不同教師之間資源的共享和交換。二是為教師提供完善的信息導(dǎo)入模板,簡(jiǎn)化教師工作。
圖5 課程中心主要功能
(2) 任務(wù)系統(tǒng)為教師提供完善的作業(yè)布置、在線批改和學(xué)生成績(jī)管理功能,學(xué)生在此完成作業(yè)和查看相應(yīng)的成績(jī)。圖6表示的是教師功能權(quán)限圖,考慮到任務(wù)布置的復(fù)雜習(xí)性以及“同源班級(jí)”之間任務(wù)可能會(huì)有較大的相似性,Weblearn創(chuàng)新點(diǎn)在于支持任務(wù)的分享和復(fù)制?!巴窗嗉?jí)”之間可以主動(dòng)分享和選擇性復(fù)制已經(jīng)布置好的任務(wù),也可以從往年開(kāi)設(shè)的班級(jí)中復(fù)制任務(wù),這很大程度上節(jié)省了教師布置任務(wù)的時(shí)間,同時(shí)也使得“同源班級(jí)”之間可以有更好的交流。
圖6 任務(wù)系統(tǒng)教師功能權(quán)限
(3) 課程論壇參考Piazza的問(wèn)答平臺(tái),最大的特點(diǎn)是支持各種類(lèi)型的帖子,如問(wèn)答貼、投票貼、筆記等。并且重點(diǎn)突出教師在論壇中的發(fā)帖及恢復(fù),論壇是學(xué)生和教師討論和交流的平臺(tái),可以很好地幫助發(fā)現(xiàn)和解決問(wèn)題。
(4) 在線測(cè)試部分和任務(wù)系統(tǒng)類(lèi)似,教師負(fù)責(zé)組織個(gè)管理在線測(cè)試資源,學(xué)生進(jìn)行在線測(cè)試。如圖7所示,除了基本的在線測(cè)試和判卷功能,Weblearn在線測(cè)試有以下幾個(gè)特點(diǎn):① 題庫(kù)構(gòu)建支持文件批量導(dǎo)入,提供了詳細(xì)的導(dǎo)入模板,簡(jiǎn)化題庫(kù)構(gòu)建難度。并且為每個(gè)試題添加多個(gè)標(biāo)簽,如章節(jié)、難易度、知識(shí)點(diǎn)等。② 試卷構(gòu)建添加自動(dòng)化選題功能,只需指定題庫(kù)范圍以及難易程度(easy、normal、difficult)題目所占百分比,系統(tǒng)會(huì)自動(dòng)的完成試卷制作。③ 系統(tǒng)會(huì)分析所有同學(xué)的答題情況以及題目標(biāo)簽生成分析報(bào)表,包括成績(jī)分布、錯(cuò)誤率、難易度定位等信息。
圖7 在線測(cè)試功能模塊
(5) 預(yù)約系統(tǒng)是為了更好的統(tǒng)一用戶(hù)的時(shí)間,增加解決問(wèn)題的效率。該模塊進(jìn)一步加強(qiáng)系統(tǒng)用戶(hù)之間的交流,例如學(xué)生可以通過(guò)預(yù)約系統(tǒng)預(yù)約教師的空閑時(shí)間進(jìn)行交流和解惑,當(dāng)小組人員出現(xiàn)時(shí)間沖突時(shí),也可以利用預(yù)約系統(tǒng)找出最佳的時(shí)間段,更快速有效的解決問(wèn)題。這是其他在線學(xué)習(xí)平臺(tái)所不具備的。
通過(guò)仔細(xì)調(diào)研Blackboard、Piazza、Moodle、MOOC等平臺(tái),Weblearn在功能上有進(jìn)一步的改進(jìn)和完善,表5中是系統(tǒng)部分創(chuàng)新功能模塊與其他平臺(tái)的對(duì)比結(jié)果。
表5 部分新增優(yōu)化功能對(duì)比
2.3 系統(tǒng)協(xié)作性設(shè)計(jì)
Weblearn設(shè)計(jì)的目標(biāo)之一就是加強(qiáng)各大高校間跨學(xué)校的協(xié)作與交流,支持課程對(duì)外開(kāi)放,提供跨校學(xué)習(xí)平臺(tái)。這主要體現(xiàn)在兩個(gè)方面,一是通過(guò)系統(tǒng)公共論壇以及公共預(yù)約系統(tǒng)來(lái)加強(qiáng)各大高校間用戶(hù)的溝通和交流,讓用戶(hù)從中發(fā)現(xiàn)自己感興趣的話(huà)題或資源。二是源于課程資源的公開(kāi),在課程班級(jí)創(chuàng)建過(guò)程中可以進(jìn)行公開(kāi)性設(shè)置,如圖8所示如果創(chuàng)建者將創(chuàng)建的班級(jí)設(shè)為公共課,外校用戶(hù)就能有機(jī)會(huì)加入該班級(jí)同步學(xué)習(xí)和交流,在班級(jí)內(nèi)部共享和使用相關(guān)資源。
圖8 班級(jí)創(chuàng)建流程
目前Weblearn系統(tǒng)共有中國(guó)和加拿大1 511所大學(xué)的院系信息,暫時(shí)共有約5 000名用戶(hù),期望不同地區(qū)不同學(xué)校的用戶(hù)通過(guò)Weblearn能有更好的協(xié)作和交流。
Weblearn有較多的功能管理模塊,我們采用最新的Spring、HTML5、CSS3等多種技術(shù)進(jìn)行實(shí)現(xiàn)。整個(gè)系統(tǒng)通過(guò)構(gòu)建多服務(wù)器的分布式集群,實(shí)現(xiàn)高并發(fā)下的負(fù)載均衡。改進(jìn)基于INM的數(shù)據(jù)庫(kù)訪問(wèn)及映射、信息檢索以及半結(jié)構(gòu)化數(shù)據(jù)添加方式。
3.1 系統(tǒng)負(fù)載均衡
系統(tǒng)是以tomcat作為代理服務(wù)器發(fā)布的,如果使用單服務(wù)器來(lái)承載整個(gè)系統(tǒng),在大量用戶(hù)并發(fā)請(qǐng)求的情況下,若要保證及時(shí)的響應(yīng),這對(duì)服務(wù)器的配置有著極高的要求。對(duì)此為了保證系統(tǒng)的及時(shí)響應(yīng),系統(tǒng)采用nignx+memcached構(gòu)建分布式集群,實(shí)現(xiàn)服務(wù)器的負(fù)載均衡[14-15]。如圖9所示,這是服務(wù)器集群的基本構(gòu)架圖,其中包含Server1和Server2兩個(gè)服務(wù)器,每個(gè)服務(wù)器中安裝了兩個(gè)tomcat構(gòu)成一個(gè)小的集群。
圖9 分布式集群構(gòu)架
其中Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,可以通過(guò)配置指定反向代理的服務(wù)器地址,當(dāng)用戶(hù)在瀏覽器端提交請(qǐng)求后,請(qǐng)求首先提交給Nginx,由Nginx將請(qǐng)求進(jìn)行分發(fā)。Nginx會(huì)通過(guò)輪轉(zhuǎn)的方式不斷檢測(cè)各個(gè)代理服務(wù)器的運(yùn)行情況,然后將請(qǐng)求分發(fā)給負(fù)載量較低的服務(wù)器,這樣便實(shí)現(xiàn)了在高并發(fā)情況下各個(gè)服務(wù)器的負(fù)載均衡,避免單節(jié)點(diǎn)故障。另外,一個(gè)用戶(hù)在一段時(shí)間內(nèi)會(huì)有多個(gè)請(qǐng)求,這些請(qǐng)求極有可能被分發(fā)到不同的服務(wù)器,為了保證會(huì)話(huà)(Session)的一致性,在每個(gè)服務(wù)器中使用memcached代理tomcat的Session控制并通過(guò)廣播的形式實(shí)現(xiàn)不同服務(wù)器中memcached的數(shù)據(jù)共享。每個(gè)memecached都持有整個(gè)系統(tǒng)的會(huì)話(huà)記錄,這樣即使其中某個(gè)memcached出現(xiàn)故障,系統(tǒng)也能正常的運(yùn)行。
3.2 數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)現(xiàn)
基于INM面向?qū)ο筇攸c(diǎn),系統(tǒng)開(kāi)發(fā)了數(shù)據(jù)庫(kù)驅(qū)動(dòng)INM-JDBC。INM-JDBC進(jìn)一步封裝數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),以實(shí)例對(duì)象形式返回記錄,并且額外添加數(shù)據(jù)庫(kù)連接池、日志等內(nèi)置模塊。通過(guò)INM-JDBC訪問(wèn)數(shù)據(jù)庫(kù)主要分為以下幾個(gè)步驟:
(1) 構(gòu)建模板工廠InmTemplateFactory,初始化數(shù)據(jù)庫(kù)連接。
簡(jiǎn)單的初始化方式代碼如下:
InmTemplateFactory.buildTemplate(″server″,port);
只需用戶(hù)指定連接的服務(wù)器及端口即可,在初始化過(guò)程中會(huì)默認(rèn)的創(chuàng)建數(shù)據(jù)庫(kù)連接池及相關(guān)配置。
(2) 通過(guò)模板工廠獲取nmTemplate操作模板,InmTemplateFactory.getInitializedTemplate();該過(guò)程從連接池中選取已初始化的連接構(gòu)建相應(yīng)的模板,通過(guò)該模板即可進(jìn)行數(shù)據(jù)庫(kù)操作。
(3) 執(zhí)行相關(guān)的數(shù)據(jù)庫(kù)操作,獲取結(jié)果集ResultSet。
(4) 解析結(jié)果集ResultSet,獲取語(yǔ)句執(zhí)行結(jié)果。
INM-JDBC的優(yōu)勢(shì)在于它封裝了數(shù)據(jù)持久化為對(duì)象的過(guò)程,無(wú)需額外創(chuàng)建配置文件及相應(yīng)的javabean。開(kāi)發(fā)人員可以從ResultSet中獲取完整的數(shù)據(jù)對(duì)象。
3.3 級(jí)聯(lián)查詢(xún)
INM中關(guān)系-逆關(guān)系定義使得不同實(shí)例對(duì)象間的關(guān)聯(lián)是相互的,并且數(shù)據(jù)呈現(xiàn)極高的內(nèi)聚性。這使得不同的實(shí)例對(duì)象之間可以直觀地進(jìn)行相互間的關(guān)聯(lián)檢索。基于INM的聲明性查詢(xún)語(yǔ)言IQL[12]可以方便地實(shí)現(xiàn)跨對(duì)象的信息級(jí)聯(lián)查詢(xún)。例如以下幾個(gè)簡(jiǎn)單的實(shí)例數(shù)據(jù):
Section DB[Teacher:Tim, Student:{Bob,Ann},Assistant:Joy];
User Tim[@email:timMail@163.com, teach:DB];
User Bob[@email:bobMail@163.com,select:DB];
User Joy[@email:joyMail@gmail.com,assist:DB];
我們要查詢(xún)“班級(jí)DB的詳細(xì)信息及教師Tim的email“,IQL可以直觀將該查詢(xún)需求轉(zhuǎn)變?yōu)椴樵?xún)語(yǔ)句:
query $x=DB[Teacher:Tim/@email:$y] construct $x/$y;
其中參數(shù)$x,$y分別代表班級(jí)DB實(shí)例對(duì)象和教師Tim的email信息。基于IQL這一能直觀表達(dá)查詢(xún)需求的特點(diǎn),在搜索系統(tǒng)實(shí)現(xiàn)過(guò)程中可以對(duì)搜索關(guān)鍵字進(jìn)行語(yǔ)義解析,更加直觀方便將其轉(zhuǎn)換成相應(yīng)的查詢(xún)語(yǔ)句,增加搜索廣度和精確度。其實(shí)現(xiàn)主要分為兩個(gè)步驟:
(1) Weblearn搜索的主要對(duì)象是學(xué)校、學(xué)院、課程班級(jí)、用戶(hù)等,根據(jù)該限定對(duì)搜索條件進(jìn)行語(yǔ)義解析。
(2) 將語(yǔ)義解析后的搜索條件轉(zhuǎn)換為相應(yīng)的查詢(xún)語(yǔ)句,對(duì)單個(gè)關(guān)鍵字進(jìn)行模糊匹配,多關(guān)鍵字根據(jù)連接詞轉(zhuǎn)換為相應(yīng)的關(guān)聯(lián)查詢(xún)。
3.4 無(wú)模式數(shù)據(jù)添加
所謂無(wú)模式數(shù)據(jù)添加是指基于INM動(dòng)態(tài)建模的特點(diǎn)實(shí)現(xiàn)的用戶(hù)個(gè)性化信息完善功能。如2.3節(jié)所述,INM支持向數(shù)據(jù)庫(kù)中插入模式未定義的屬性和關(guān)系信息,并會(huì)自動(dòng)完善建模。例如下列用戶(hù)插入語(yǔ)句:Insert User “Peter”[@獲獎(jiǎng)榮譽(yù):[@年份:2013,@專(zhuān)利:”十大杰出青年”],@研究方向:“數(shù)據(jù)庫(kù)”];
假設(shè)在用戶(hù)模式定義中不包含這些屬性定義,語(yǔ)句執(zhí)行后數(shù)據(jù)庫(kù)會(huì)自動(dòng)為實(shí)例對(duì)象Peter添加復(fù)雜屬性”獲獎(jiǎng)榮譽(yù)”和簡(jiǎn)單屬性”研究方向”并存儲(chǔ)相應(yīng)的值?;谶@個(gè)特點(diǎn)系統(tǒng)實(shí)現(xiàn)的用戶(hù)個(gè)性化信息完善功能主要分為三個(gè)部分:
(1) 顯示已添加的所有屬性信息,提供刪除修改接口。
(2) 提供自定義屬性接口,允許用戶(hù)以[attrName:Value]的形式自定義簡(jiǎn)單或復(fù)雜屬性。
(3) 提供文件導(dǎo)入接口,支持word、txt格式文檔,通過(guò)POI解析轉(zhuǎn)換為插入語(yǔ)句,文檔內(nèi)容格式需要滿(mǎn)足INM中屬性關(guān)系聲明語(yǔ)法,例如下列格式:
獲獎(jiǎng)榮譽(yù)[年份:2013,
專(zhuān)利:十大杰出青年];
研究方向:數(shù)據(jù)庫(kù)
這一功能讓用戶(hù)可以根據(jù)實(shí)際情況動(dòng)態(tài)地完善和修改個(gè)人信息,建立完整的個(gè)人信息文檔。并且鍵-值對(duì)的數(shù)據(jù)存儲(chǔ)方式使得數(shù)據(jù)更加結(jié)構(gòu)化,方便獲取和解析。
通過(guò)充分調(diào)研在線學(xué)習(xí)平臺(tái)的優(yōu)點(diǎn)與不足,結(jié)合新的需求,基于INM設(shè)計(jì)實(shí)現(xiàn)功能完善且更具有針對(duì)性的Weblearn在線教學(xué)系統(tǒng)(www.weblearn.cn)。系統(tǒng)結(jié)合線下課堂教學(xué)為用戶(hù)提供了更多更完善的在線學(xué)習(xí)工具以及通用的課程管理功能。分布式集群的構(gòu)架極大地提高了系統(tǒng)的可用性及擴(kuò)展性?;贗NM語(yǔ)義直觀、無(wú)模式存儲(chǔ)等特點(diǎn)提出的建模方法簡(jiǎn)化了數(shù)據(jù)庫(kù)建模過(guò)程,有較強(qiáng)的實(shí)用意義。采用INM向?qū)ο笳Z(yǔ)義數(shù)據(jù)庫(kù)是一次新的嘗試,在數(shù)據(jù)庫(kù)建模、關(guān)聯(lián)查詢(xún)以及數(shù)據(jù)結(jié)構(gòu)化方面都有待進(jìn)一步的探究。目前系統(tǒng)運(yùn)行穩(wěn)定,評(píng)價(jià)良好,具有很高的實(shí)用和推廣價(jià)值。
[1] Wikipedia.Educational technology[DB/OL].https://en.wikipedia.org/wiki/Educational_technology.
[2] eLearning Infographics.Top 10 eLearning Statistics for 2014 Infographic[OL].http://elearninginfographics.com/elearning-statistics-2014-infographic/.
[3] Alexander B.Web 2.0:A new wave of innovation for teaching and learning?[J].EDUCAUSE Review,2006,41(2):32-44.
[4] Rennie F,Morrison T M.E-learning and social networking handbook:Resources for higher education[M].2nd Edition. London: Routledge,2013.
[5] Mak S F J,Williams R,Mackness J.Blogs and forums as communication and learning tools in a MOOC[C]//Proceedings of the 7thInternational Conference on Networked Learning,2010:275-285.
[6] Waard I D,Koutropoulos A,Keskin N,et al.Exploring the MOOC format as a pedagogical approach for mLearning[C]//Proceedings of the 10thWorld Conference on Mobile and Contextual Learning,2011:138-148.
[7] Jurado F,Redondo M A,Ortega M.Blackboard architecture to integrate components and agents in heterogeneous distributed eLearning systems:An application for learning to program[J].Journal of Systems and Software,2012,85(7):1621-1636.
[8] Pishva D,Nishantha G G D,Dang H A.A survey on how blackboard is assisting educational institutions around the world and the future trends[C]//Advanced Communication Technology (ICACT),2010 The 12th International Conference on.IEEE,2010:1539-1543.
[9] 王秀榮,劉敏斯,孫良林.四款開(kāi)源學(xué)習(xí)管理系統(tǒng)的對(duì)比與探究[J].現(xiàn)代教育技術(shù),2010,20(7):102-106.
[10] Liu M,Hu J.Information networking model[C]//Proceedings of the 28thInternational Conference on Conceptual Modeling.Springer,2009:131-144.
[11] Liu M,Hu J,Chen L,et al.Representing Hierarchical Relationships in INM[C]//Proceedings of the 33rdInternational Conference on Conceptual Modeling.Springer International Publishing,2014:297-304.
[12] 金錚,劉夢(mèng)赤,胡婕.信息網(wǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢(xún)優(yōu)化[J].計(jì)算機(jī)科學(xué)與探索,2015,9(3):300-309.
[13] 徐倩,胡婕,劉夢(mèng)赤.復(fù)雜語(yǔ)義關(guān)系的描述與操作[J].計(jì)算機(jī)科學(xué)與探索,2014,8(12):1432-1441.
[14] Chi X,Liu B,Niu Q,et al.Web load balance and cache optimization design based Nginx under high-concurrency environment[C]//Digital Manufacturing and Automation (ICDMA),2012 Third International Conference on.IEEE,2012:1029-1032.
[15] Blott M,Liu L,Karras K,et al.Scaling out to a single-node 80Gbps memcached server with 40terabytes of memory[C]//Proceedings of the 7th USENIX Workshop on Hot Topics in Storage and File Systems,2015:8-12.
[16] Dougiamas M.Moodle-A Free,Open Source Course Management System for Online Learning[OL].https://moodle.org/.
DESIGN AND IMPLEMENTATION OF ONLINE TEACHING SYSTEM BASED ON INM
Li Jie Liu Mengchi
(CollegeofComputerScience,WuhanUniversity,Wuhan430000,Hubei,China)
In order to provide a comprehensive and versatile online teaching platform to universities and colleges, fully integrate online learning and offline classroom teaching methods to provide teachers and students with rich "teaching" and "learning" function modules, design and development of online teaching system Weblearn. The system uses Nginx and Memcached to build a multi-server distributed cluster to achieve high concurrent load balancing and improve system availability. The INM (Information Networking Model) is used as the underlying storage database. The system uses the cascade query and dynamic modeling to improve the efficiency and extensibility of the system by using its associated storage and model-free storage. The database modeling method and database access method of INM in practical application are proposed, and the process of database modeling is simplified. At present the system has been in Wuhan University, Hubei University, Carleton University in Canada put into use, in good condition.
Online teaching platform Database INM Modeling Distributed
2016-01-21。李杰,碩士,主研領(lǐng)域:數(shù)據(jù)庫(kù)技術(shù),Web技術(shù)。劉夢(mèng)赤,教授。
TP3
A
10.3969/j.issn.1000-386x.2017.04.006