王 焱 (鄖陽師范高等專科學校教育系,湖北 十堰442000)
吳青林 (鄖陽師范高等專科學校計算機科學系,湖北十堰442000)
傳統(tǒng)的遠程教學系統(tǒng)大多采用集中式的C/S (Client/Server,客戶機/服務(wù)器)模式和B/S(Brower/Server,瀏覽器/服務(wù)器)模式,將資源集中存放在中央服務(wù)器上,大量的客戶端設(shè)備未能充分利用,造成了資源的浪費和網(wǎng)絡(luò)帶寬使用不平衡[1]。利用P2P(Peer to Peer,對等網(wǎng)絡(luò))網(wǎng)絡(luò)的優(yōu)點將遠程教學資源分散在各個計算機節(jié)點上,減小服務(wù)器和網(wǎng)絡(luò)帶寬的負擔,必將能夠有效的克服C/S模式和B/S模式的缺陷,進一步提高P2P的優(yōu)勢,具有更好的健壯性和可擴展性。下面,筆者主要基于JXTA協(xié)議設(shè)計并實現(xiàn)了P2P遠程教學系統(tǒng),為教師和學生提供了實時交流的手段。
JXTA是Sun公司為了解決P2P網(wǎng)絡(luò)互不相連的弊端而推出的,其目的就是為了搭建一個與系統(tǒng)無關(guān)、與語言無關(guān)、可以應(yīng)用在任何設(shè)備的P2P開發(fā)平臺[2]。JXTA應(yīng)用程序分為三層結(jié)構(gòu),分別為JXTA核心層、服務(wù)層、應(yīng)用層。核心層包含了服務(wù)所需要的核心功能,為應(yīng)用程序提供了最本質(zhì)的支持;服務(wù)層提供了訪問JXTA協(xié)議的接口,為應(yīng)用程序開發(fā)提供網(wǎng)絡(luò)服務(wù);應(yīng)用層使用服務(wù)來訪問JXTA網(wǎng)絡(luò)和JXTA提供的功能。三層結(jié)構(gòu)是具有層次性的,核心層處于最底層,服務(wù)層處于中間層,應(yīng)用層于最上層,其設(shè)計思想與操作系統(tǒng)的設(shè)計類似。
遠程教學系統(tǒng)的設(shè)計目標是在Internet環(huán)境下能夠模擬真實的教學課堂,實現(xiàn)教師的課堂講解、視頻點播、實時交流等各種教學功能,而且每個節(jié)點可以通過點到點的方式實現(xiàn)各種信息資源共享,這樣可以充分的利用每個節(jié)點的教學資源,提高各種資源的利用率。
該系統(tǒng)的網(wǎng)絡(luò)模型采用一種基于節(jié)點物理位置的雙環(huán)結(jié)構(gòu),先判斷節(jié)點的物理位置,根據(jù)物理位置的不同形成多個次環(huán),然后從每個次環(huán)中選出一個群首節(jié)點構(gòu)成主環(huán),群首節(jié)點負責所在次環(huán)的工作情況,保存著所在次環(huán)節(jié)點的一些相關(guān)信息。群首節(jié)點是一個群組內(nèi)的高性能節(jié)點,子環(huán)之間的通信是通過群首節(jié)點實現(xiàn)的,其主環(huán)和次環(huán)節(jié)點的順序由Hash算法分配。這種雙環(huán)拓撲結(jié)構(gòu)具有良好的可擴展性,管理方便,并且可以增加P2P網(wǎng)絡(luò)的穩(wěn)定性和容錯性。
根據(jù)雙環(huán)結(jié)構(gòu)模型,將遠程教學系統(tǒng)的計算機分成多個組,每個組中選出一個高性能的群首節(jié)點來維護本組的在線節(jié)點列表,普通的節(jié)點要連接到群首節(jié)點上才能實現(xiàn)節(jié)點的注冊。在子環(huán)內(nèi)的一個普通節(jié)點需要其他環(huán)內(nèi)節(jié)點的學習資源時,先將請求轉(zhuǎn)發(fā)給所在環(huán)的群首節(jié)點,由群首節(jié)點負責查詢,最后將結(jié)果返回到發(fā)起查詢的普通節(jié)點。遠程教學系統(tǒng)的雙環(huán)網(wǎng)絡(luò)模型如圖1所示。

圖1 遠程教學系統(tǒng)雙環(huán)網(wǎng)絡(luò)模型
根據(jù)遠程教學系統(tǒng)的功能,系統(tǒng)主要分為電子白板模塊、教學資源下載模塊、在線作業(yè)模塊和課堂實時交流模塊。電子白板模塊主要實現(xiàn)師生在同一塊區(qū)域中相互交流;教學資源下載模塊主要實現(xiàn)教學資源的下載,每一個節(jié)點均可以提供資源下載;在線作業(yè)模塊實現(xiàn)學生在線完成教師提供的作業(yè),并能夠?qū)ψ鳂I(yè)結(jié)果進行評分;課堂實時交流模塊實現(xiàn)了音頻、視頻和文本等各種方式的交流。
對等網(wǎng)絡(luò)下的即時通信采用點對點工作模式,信息交換不經(jīng)過服務(wù)器而在客戶端之間直接進行[3]。即時通信功能分為2人之間的通信和多人之間的通信。2人通信采用單播安全型管道,安全管道兩端的對等體都經(jīng)過了身份驗證,并且在安全管道傳輸?shù)臄?shù)據(jù)是加密的,數(shù)據(jù)在傳輸時既不能被讀取也不能被修改。多人通信采用廣播型管道,通過廣播型管道傳送的消息能夠被多個節(jié)點收到,這種方式能夠使用IP網(wǎng)絡(luò)的廣播或者多播套接字的方法來實現(xiàn)。2人之間的通信和多人之間的通信在網(wǎng)絡(luò)即時通信過程中運用的都非常廣泛。
利用JXTA協(xié)議,即時通信功能的具體實現(xiàn)如下:首先建立輸入管道,注冊管道消息監(jiān)聽,發(fā)布輸入管道通告。接著通過輸入管道執(zhí)行監(jiān)聽,處理監(jiān)聽到的消息,監(jiān)聽到消息后,就與監(jiān)聽到的管道建立連接。然后建立輸出管道,將需要發(fā)送的消息在輸出管道上發(fā)送出去,最后讀取消息,并將其顯示出來。
1)根據(jù)通告機制建立管道通告,設(shè)置管道通告的標志號、通告的名稱和通告的類型,并發(fā)布管道通告。部分代碼如下:

2)通過startlisten()方法進行監(jiān)聽,等待響應(yīng)消息。然后根據(jù)響應(yīng)消息獲取輸入管道通告pipeAdvertisement,并根據(jù)pipeAdvertisement建立輸出管道OutputPipe,這樣消息接受方和消息發(fā)送方就實現(xiàn)了連接,就可以在輸出管道中傳送消息了。
3)當管道連接完成之后,系統(tǒng)利用建立的輸出管道實現(xiàn)消息的發(fā)送,接收方利用輸入管道的監(jiān)聽器獲取發(fā)送的消息并將其顯示。接收消息并顯示的過程為:首先定義消息事件,監(jiān)聽是否有消息,如果有消息,則定義消息對象,接收消息,并從消息包中獲取信息頭信息和信息體信息,然后將其顯示出來。
電子白板指的是一個虛擬公用區(qū)域,參加協(xié)作的各個成員的計算機上都有一個白板的視圖[4]。用戶可以同時登錄到這個協(xié)同工作環(huán)境中,遵守一定的協(xié)調(diào)機制,實現(xiàn)實時的交流,達到共同協(xié)同完成教學任務(wù)。電子白板的通信過程是首先在一個節(jié)點上對一個圖形完成繪制并對圖形的一些特征進行提取,接著將其打包傳輸?shù)叫枰邮障⒌墓?jié)點,最后接收節(jié)點將其恢復(fù)成原圖形。根據(jù)以上過程可以將電子白板功能分為以下3步實現(xiàn):
1)本地圖形繪制 本地圖形繪制主要完成類似Windows繪圖板的功能,首先定義了一個圖形的抽象類ShapeObject,后面其他的各種圖形都通過繼承這個抽象類來實現(xiàn)每個圖形的功能。在抽象類中定義的圖形顏色、坐標點等各種變量,還定義了繪制圖形和填充顏色等方法。
2)圖形信息打包傳輸 圖形信息打包傳輸主要完成的功能是將圖形信息進行打包,傳送到其他的節(jié)點上,等待其他節(jié)點對圖形進行操作。首先判斷畫圖的模式drawMode,如果模式是畫圖模式DRAWSHAPE或者是填充圖形模式FILLEDSHAPE,就要先把選擇的圖形用clearSection()函數(shù)清除,然后根據(jù)開始點和結(jié)束點繪制圖形,在繪圖信息的HASH表中設(shè)置圖形的相關(guān)信息,最后調(diào)用輸出管道outputPipe將創(chuàng)建圖形消息包發(fā)送到點組中。
3)遠程圖形恢復(fù) 遠程圖形恢復(fù)主要實現(xiàn)在接受端根據(jù)圖形的特征信息將圖形重新繪制出來。其處理的方法是當接收端收到消息之后,使用push函數(shù)將其存入向量Vector中,然后創(chuàng)建另外一個進程,使用pop函數(shù)將消息從向量Vector中取出,最后調(diào)用process(Message msg)函數(shù)處理。
基于JXTA的遠程教學系統(tǒng)可擴展性好,健壯性強,具有很高的資源利用效率。目前該遠程教學系統(tǒng)已經(jīng)在一些課堂教學中使用,效果良好。隨著應(yīng)用范圍的擴大,下一步需要在軟件界面、系統(tǒng)安全性、附加功能等方面進一步研究和完善。
[1]胡順仿,向云強.基于JXTA的平面幾何輔助教學系統(tǒng)設(shè)計與實現(xiàn)[J].云南民族大學學報 (自然科學版),2011,20(2):140-143.
[2]李富蕓,蔣文娟.基于JXTA的P2P流媒體系統(tǒng)實現(xiàn)研究[J].電腦知識與技術(shù),2010,29(6):8303-8304.
[3]李永明.基于P2P的即時通信系統(tǒng)的研究[J].計算機與現(xiàn)代化,2009(8):34-39.
[4]李靜,鄭采星,劉曉平.基于CSCW的研究性學習互動平臺中電子白板的研究與設(shè)計[J].中國教育信息,2009(7):77-79.