文/陶新權(quán) 杜爭 安翼
Web2.0的出現(xiàn)使互聯(lián)網(wǎng)更加人性化和開放化的同時,也給信息化教育的應(yīng)用帶來了新契機和思維模式的變化,為教學改革創(chuàng)造良好的條件。教師在教學過程中需要加大應(yīng)用知識和探求未知的比重,喚起學生的學習興趣,并培養(yǎng)學生自主研究的學習習慣;貫徹啟發(fā)引導(dǎo)原則,創(chuàng)新研究型課堂教學模式激發(fā)思維活力,提高學生問題解決能力;構(gòu)筑信息化、開放式的研究型教學環(huán)境,為自主性學習提供有力支撐。
本文以北京航空航天大學圖書館為本科生開設(shè)的公共選修課《HP-UX系統(tǒng)基礎(chǔ)》的教學網(wǎng)站建設(shè)為例,展示W(wǎng)eb2.0技術(shù)如何為自主性學習搭建良好的教學環(huán)境。
《HP-UX系統(tǒng)基礎(chǔ)》課程從最基礎(chǔ)的概念、操作命令開始,全面地介紹了HPUX系統(tǒng)基本結(jié)構(gòu)、系統(tǒng)的使用與系統(tǒng)管理等專業(yè)知識。由于該課程面向的是不同年級、不同學科背景的學生,學生個體計算機水平參差不齊,且課程中的命令和選項多而雜、不易理解記憶、感性認識差等使很多初學者感到這門課程不易真正學懂弄通。這都影響了學生學習的主動性和積極性。
因此,研究課程教學網(wǎng)站的組織機制、技術(shù)實現(xiàn)及網(wǎng)站使用等問題,構(gòu)建適合專業(yè)教學特點網(wǎng)站的基本模型成為教學改革關(guān)注的重要問題。該系統(tǒng)面向高校的學生、教師和管理員,應(yīng)具備的功能包括:1. 為學生提供除課堂之外的輔助學習環(huán)境,展示更全面、豐富的課程信息。2.提供互動交流平臺,方便教師和管理員發(fā)布信息、管理相關(guān)資源。3.上機實踐環(huán)境?!禜P-UX系統(tǒng)基礎(chǔ)》是一門操作性很強的課程,提供一個良好的上機實踐環(huán)境,有利于學生不斷提高解決問題的能力。4.在充分體現(xiàn)“以學生為主、教師為輔”的原則的基礎(chǔ)上,應(yīng)激發(fā)學生學習的自主性和能動性,增強學生的學習興趣,促進學生潛能的發(fā)揮和個性的發(fā)展。5.教學內(nèi)容是一個動態(tài)的、不斷變化的過程,系統(tǒng)應(yīng)具有方便地對網(wǎng)上教學內(nèi)容隨時進行更新的功能。因此,系統(tǒng)的設(shè)計開發(fā)應(yīng)該基于開放性、交互性、動態(tài)性、共享性、引導(dǎo)性和可維護性等原則。
開源內(nèi)容管理系統(tǒng)——Drupal
Drupal是基于PHP的開源內(nèi)容管理系統(tǒng),具有明顯的面向?qū)ο笏枷牒蚖eb2.0特征。Drupal的功能具有模塊化特點,其分為核心模塊、附加模塊及用戶定制模塊。核心模塊是安裝時自帶的模塊,如用戶管理、模塊管理、內(nèi)容索引及搜索、博客、論壇等。附加模塊是Drupal社區(qū)開發(fā)者提供維護的模塊。用戶定制模塊是在應(yīng)用中根據(jù)具體應(yīng)用設(shè)計的模塊。Drupal提供了Hook機制來對已有的模塊功能進行擴充,并提供了數(shù)據(jù)庫層及數(shù)據(jù)庫層訪問的API,可方便地在用戶定制模塊中完成各種功能。Drupal具有很高的可配置性、可伸縮性和可擴展性。從個人站點到大型企業(yè)門戶、電子商務(wù)網(wǎng)站都可使用Drupal搭建。虛擬機
圖1 iVIC總體結(jié)構(gòu)
虛擬機(Virtual Machine)是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。iVIC(Internet based Virtual Computing Enviroment)是一個利用虛擬機構(gòu)建的虛擬計算環(huán)境,通過在物理計算機集群上構(gòu)建獨立、隔離、可定制的虛擬機網(wǎng)絡(luò)以實現(xiàn)硬件資源的復(fù)用,提高資源利用率,其結(jié)構(gòu)如圖1所示。其功能模塊有:
1. 虛擬機容器(VM Container):安裝部署到每一臺連入虛擬計算環(huán)境的物理節(jié)點上,它封裝了節(jié)點的虛擬機監(jiān)控器(VMM),并提供SOAP及RESTful Web服務(wù)接口的網(wǎng)絡(luò)控制能力。
2.虛擬資源信息服務(wù)(Vshedule):匯總和收集計算環(huán)境中的物理機及虛擬機狀態(tài),并為資源分配等機制提供信息。
3. 虛擬網(wǎng)絡(luò)管理模塊(Vswitch):為虛擬計算環(huán)境提供虛擬網(wǎng)絡(luò)支持,定義了虛擬路由器、虛擬交換機等設(shè)備,按照用戶需要創(chuàng)建虛擬網(wǎng)絡(luò)拓撲,跨域連接虛擬機。
4. 調(diào)度器(Vstore):根據(jù)用戶提交的虛擬機、虛擬網(wǎng)絡(luò)和虛擬集群等虛擬資源的創(chuàng)建請求,在物理資源上綜合調(diào)度,分配資源并創(chuàng)建對應(yīng)的網(wǎng)絡(luò)連接。
5. iVIC Portal及API:提供一個訪問iVIC功能的用戶界面,通過多種形式的API可將系統(tǒng)功能集成到第三方程序中。
SOAP通信
SOAP(Simple Object Access Protocol),即簡單對象訪問協(xié)議,是一種輕量的、簡單的、基于擴展的標記語言XML的協(xié)議。SOAP可以和現(xiàn)存的許多因特網(wǎng)協(xié)議和格式結(jié)合使用,包括超文本傳輸協(xié)議HTTP、簡單郵件傳輸協(xié)議SMTP、多功能因特網(wǎng)郵件擴充服務(wù)MIME等,它還支持從消息系統(tǒng)到遠程過程調(diào)用等大量的應(yīng)用程序。SOAP消息的格式如下:
SOAP標頭
< SOAP ENV: Envelope A ttributes>< SOAP ENV: Body A ttributes>
< /SOAP ENV: Body>
< /SOAP ENV: Envelope>
功能模塊
該課程教學網(wǎng)站的主要功能有用戶管理、課程通知、博客、資源共享、課件下載、在線交流、站內(nèi)搜索和上機實踐,見圖2。
1. 用戶管理:用于系統(tǒng)的安全控制和權(quán)限控制。用戶可填寫ID、郵箱和密碼進行注冊,通過認證的方式等待管理員確認或接受郵件認證。網(wǎng)站的管理員將用戶分配到不同的組,對其權(quán)限進行管理。
2. 課程通知:用于及時公布教學相關(guān)信息,如課程介紹、教學大綱、指定教材。教師或者管理員可以創(chuàng)建、修改、刪除通知信息,并將其發(fā)布到網(wǎng)站,供學生查看。
3. 博客管理:用戶可以在線撰寫博客,分享學習心得和感受。
4. 資源共享:用戶可將一些學習相關(guān)的學習資料發(fā)布在自己的博客或其他內(nèi)容主題中,方便其他用戶下載使用和學習。
5. 課件下載:管理員或者教師可以將學習課件發(fā)布到網(wǎng)站對應(yīng)欄目中,供學生下載學習。
圖2 系統(tǒng)功能
6. 在線交流:以論壇的形式提供了學生之間及師生之間學習交流的空間。
7. 站內(nèi)搜索:用戶可以方便地搜索站內(nèi)的信息和其他用戶。
8. 信息聚合:網(wǎng)站為用戶提供信息訂閱功能,可以訂閱網(wǎng)站提供的RSS、RDF和ATOM種子,這樣用戶就可以定期獲得網(wǎng)站內(nèi)容的更新信息。
9. 互助問答:提供了一個問答平臺,提問者發(fā)布問題并可以設(shè)置期限,其他用戶可以為其解答,最后由提問者選擇一個最滿意的答案。
10. 在線情景幫助:根據(jù)用戶訪問的不同頁面為其提供不同的幫助文檔。
11. 上機實踐:教師根據(jù)課程要求,在操作系統(tǒng)虛擬鏡像中定制HP-UX,該虛擬機鏡像文件即為課程模板,然后通過iVIC搭建的虛擬集群,將課程模板存儲在iVIC的虛擬節(jié)點上。學生登錄后,可以看到教師為其開設(shè)的課程信息,并可以進行相關(guān)的教學實踐。Drupal擴展設(shè)計
采用虛擬機技術(shù)使虛擬服務(wù)器能夠在同樣的硬件資源下運行多個操作系統(tǒng)和應(yīng)用程序,從而有效地提高服務(wù)器的利用率,減少服務(wù)器的數(shù)量,降低服務(wù)器的能耗,進而降低運營成本。本文擴展了Drupal對虛擬機的支持,提供了Drupal用戶和iVIC虛擬機的信息管理功能,可以實現(xiàn)虛擬機的創(chuàng)建、啟動、停止以及刪除。Drupal頁面通過創(chuàng)建HTTP連接,發(fā)送包含SOAP請求的HTTP報文實現(xiàn)對iVIC的SOAP接口調(diào)用。iVIC對PHP封裝的SOAP控件發(fā)送的消息無響應(yīng),因此采取直接建立HTTP請求發(fā)送SOAP報文的方法。SOAP調(diào)用iVIC接口如圖3所示。
上機實踐的具體操作流程如下:首先對用戶信息進行驗證,如果通過,則查詢數(shù)據(jù)庫中用戶的虛擬機列表信息,如果有虛擬機的記錄,就顯示各個虛擬機的使用狀態(tài),如果沒有,用戶可以通過Drupal頁面創(chuàng)建虛擬機,創(chuàng)建后更新數(shù)據(jù)庫記錄。當用戶需要使用虛擬機時,系統(tǒng)會從iVIC后臺獲取該虛擬機的VNC(Virtual Network Computing)連接,從而獲得該虛擬機的遠程連接,用戶可以在虛擬機上進行教學實踐等活動。此外,用戶還可以根據(jù)需要刪除虛擬機,系統(tǒng)會刪除其數(shù)據(jù)庫中的相應(yīng)記錄。
圖3 SOAP調(diào)用iVIC接口
開發(fā)環(huán)境
為了使系統(tǒng)具有良好的跨平臺性,并且和Drupal框架緊密耦合,本文中Drupal系統(tǒng)的擴展開發(fā)及與虛擬機交互部分的開發(fā)是基于Linux debian5.0的環(huán)境,選擇PHP作為開發(fā)語言,Web容器使用Tomcat,數(shù)據(jù)庫使用MySQL5.1。能夠較好地保證系統(tǒng)的可移植性和健壯性。Drupal固有功能的實現(xiàn)
用戶管理、博客、資源共享、在線交流、站內(nèi)搜索、內(nèi)容更新、問答平臺和幫助功能分別采用Drupal的自有功能模塊User、Blog、Upload、論壇、Search、Aggregator、Topic/Answers和Context Help實現(xiàn)。
課程通知主要包括了課程介紹、教學大綱、指定教材和教師介紹,這些信息的發(fā)布可以利用內(nèi)容類型Page或者Story來實現(xiàn)。但是,為了方便構(gòu)建自己的內(nèi)容節(jié)點列表和它們在頁面中的顯示方式,可以引入CCK模塊為每種類型的信息創(chuàng)建一種新的內(nèi)容類型。所有需要的內(nèi)容類型設(shè)置完畢后,還需要通過Views模塊定義節(jié)點的顯示方式。Drupal擴展功能的實現(xiàn)
1. 創(chuàng)建虛擬機:解析虛擬機服務(wù)器地址,通過解析成功的服務(wù)器地址,建立與服務(wù)器的通信。拼接iVIC可以識別的SOAP報文格式,調(diào)用創(chuàng)建虛擬集群函數(shù)deployV,發(fā)送報文消息。創(chuàng)建成功后,返回被部署的虛擬機ID,將虛擬機名稱和用戶寫入數(shù)據(jù)庫。程序代碼如下:
$url ='http://219.224.171.69:8080/vsched'; //虛擬機服務(wù)器的IP地址$url2 = parse_url($url); //解析服務(wù)器地址
$fsock = fsockopen($url2['host'], $url2['port']); //與服務(wù)器通信
……
$SOAPBODY = '
$SOAPBODY.= '
$SOAPBODY.= ‘’.” ”; //虛擬機名稱
$SOAPBODY.= ‘’.” ”;//創(chuàng)建虛擬機所需參數(shù)
$SOAPBODY.= ‘’.” ”;
$SOAPBODY.= ‘’.” ”;……
$out = “”;
while($buff = fgets($fsock, 2048)){ //返回被部署虛擬機的ID
=$out .= $buff;
}
……
global $user;
db_query(“INSERT INTO {vcluster} (user, vm_uuid) VALUES(‘%s’,’%s’)”,$user->name,$re);//將虛擬機名稱和用戶寫入數(shù)據(jù)庫?>
2. 啟動虛擬機:從數(shù)據(jù)庫中查找當前用戶對應(yīng)虛擬機的UUID,解析虛擬機服務(wù)器地址,并建立與服務(wù)器的通信。拼接iVIC可以識別的SOAP報文格式,調(diào)用啟動虛擬集群函數(shù)startV,傳入虛擬機的UUID,發(fā)送報文消息。啟動成功后,返回True值。程序代碼如下:
global $user;
$result = db_query("SELECT vm_uuid FROM {vcluster} WHERE user ='%s'", $user->name); //用戶認證
$o = db_fetch_array($result); //獲得虛擬機UUID值
$url ='http://219.224.171.69:8080/vsched';
$url2 = parse_url($url);
$fsock = fsockopen($url2['host'], $url2['port']);……
$SOAPBODY = '
$SOAPBODY.= '
$SOAPBODY.= ''." "; //傳入虛擬機的UUID值……
$in=$head.$SOAPENV.$SOAPBODY;
if(!@fwrite($fsock, $in, strlen($in))){fclose($fsock);
return false;
}
?>
停止虛擬機和刪除虛擬機與上述過程類似,區(qū)別在于需要調(diào)用停止虛擬集群函數(shù)stopV和刪除虛擬集群函數(shù)undeployV。
3. VNC連接:用來加載VNC的ActiveX控件,顯示遠程桌面。程序代碼如下:
通過構(gòu)建Web2.0網(wǎng)站,利用課外作業(yè)引導(dǎo)和督促學生積極開展課外學習。通過在網(wǎng)站上發(fā)布課件和各種學習資料,輔助學生進行自我學習。基于虛擬機技術(shù)搭建網(wǎng)絡(luò)實驗平臺,使得學生的學習不受到實驗室安排的限制,可以根據(jù)自己的需要隨時隨地進行練習。構(gòu)建論壇和互助問答功能,提供學生和學生、教師和學生之間暢通的交流渠道,及時對學生進行指導(dǎo)和幫助,從而達到較好的學習效果。
虛擬機技術(shù)不僅適用于本課程的上機實踐,而且它給出了一個改變學?,F(xiàn)有實驗?zāi)J降姆较?,即學校不用建設(shè)多個實驗室和購買大量的服務(wù)器,只需要使用虛擬機技術(shù)配置不同的環(huán)境就可以滿足多門課程的上機需要。因此,本文對于未來學校的實驗課和實驗室建設(shè)也將起到很好的促進作用。