基于JXTA的P2P遠(yuǎn)程學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
(2)Teaeher類(lèi)該類(lèi)代表系統(tǒng)中的TP,負(fù)責(zé)為T(mén)P設(shè)置JXTA環(huán)境以及建立到MP的通信連接,并完成在學(xué)習(xí)系統(tǒng)中教師的功能。主要方法有:?jiǎn)?dòng) JXTA環(huán)境startJXTA(),發(fā)現(xiàn)教務(wù)對(duì)等節(jié)點(diǎn)在線狀態(tài)discoverManagerPipeAdv(),創(chuàng)建連接到MP的管道 createManagerPipes()、發(fā)布TP節(jié)點(diǎn)的在線狀態(tài)pub-lishTeacherPipeAdv(),創(chuàng)建發(fā)送會(huì)話消息到MP的通信通道createTeaeherInputPipe()、MP確認(rèn)TP發(fā)送的答案accept()、創(chuàng)建新會(huì)話requestNewSession()、讀取TP的輸入getUserRe-sponse()、獲取TP對(duì)MP的響應(yīng)sendToManager()、問(wèn)題信息處理processMessage ()、獲取對(duì)等節(jié)點(diǎn)問(wèn)傳輸信息中的文本字符串getElementValue()、建立與MP節(jié)點(diǎn)的連接connectMan-ager()、斷開(kāi)與MP 節(jié)點(diǎn)之間的連接disconnectManager()、請(qǐng)求一個(gè)新會(huì)話run()和運(yùn)行主方法main()等。另外,Teacher類(lèi)的main()方法中還定義一個(gè)InputPipeMsgListener類(lèi)實(shí)現(xiàn)PipeMsgListener接口來(lái)獲得管道中的消息。
(3)Student類(lèi)該類(lèi)代表系統(tǒng)中的SP,負(fù)責(zé)為SP設(shè)置JXTA環(huán)境以及建立與TP的通信連接,并完成在學(xué)習(xí)系統(tǒng)中學(xué)生的功能。主要方法有:?jiǎn)?dòng)JXTA環(huán)境 startJXTA(),發(fā)現(xiàn)教師對(duì)等節(jié)點(diǎn)在線狀態(tài)discoverTeacherPipeAdv(),創(chuàng)建連接到,TP的管道 createTeacherPipes()、發(fā)布SP節(jié)點(diǎn)的在線狀態(tài)publishStudentPipeAdv(),創(chuàng)建發(fā)送問(wèn)題答案到TP的通信通道 createStudentInputPipe()、TP確認(rèn)SP發(fā)送的答案accept()、創(chuàng)建新會(huì)話requestNewSession()、讀取 SP的輸入getUserRe-sponse()、獲取SP對(duì)TP的響應(yīng)sendToTeacher()、問(wèn)題信息處理processMessage ()、獲取對(duì)等節(jié)點(diǎn)間傳輸信息中的文本字符串getElementValue()、建立與TP節(jié)點(diǎn)的連接connectTeacher()、斷開(kāi)與TP節(jié)點(diǎn)之間的連接disconnectTeacher()、請(qǐng)求一個(gè)新會(huì)話run()和運(yùn)行主方法main()等。
(4)Agent類(lèi)該類(lèi)負(fù)責(zé)收集問(wèn)題和答案,對(duì)學(xué)生對(duì)等節(jié)點(diǎn)收集的答案進(jìn)行評(píng)估響應(yīng),并在“問(wèn)題――答案”會(huì)話結(jié)束后根據(jù)該學(xué)生的回答給出相應(yīng)的學(xué)習(xí)建議。主要方法有:?jiǎn)栴}和答案集合創(chuàng)建initProblems(),獲得發(fā)送問(wèn)題的總數(shù)get-TotalNumberOf Questions(),為SP提供下一個(gè)問(wèn)題get-NextProblem(),處理答案processAnswer(),接收最后一個(gè)答案 getLastAnswer()、判斷問(wèn)題是否結(jié)束hasMoreProblems(),獲得正確答案總數(shù)getTotalAnswersCorrect ()和獲得學(xué)習(xí)建議getSuggestions()等。此外,Agent類(lèi)還定義了一個(gè)Problem類(lèi)。這個(gè)類(lèi)使用了三個(gè)方法:獲得特定問(wèn)題編號(hào)的 getNumber()方法、獲得問(wèn)題內(nèi)容的getQuestion()方法和獲得問(wèn)題答案的getAnswer()方法。
(5)AgentFactory類(lèi) 該類(lèi)主要負(fù)責(zé)創(chuàng)建Agent對(duì)象。主要方法有:獲得Agent對(duì)象(getAgent)。系統(tǒng)開(kāi)發(fā)完成后,進(jìn)行了各種功能測(cè)試,證明該系統(tǒng)均能順利完成工作。本文引用地址:http://2s4d.com/article/188597.htm
4 結(jié)束語(yǔ)
JXTA項(xiàng)目使得P2P應(yīng)用程序的開(kāi)發(fā)者能將一個(gè)應(yīng)用程序中與P2P相關(guān)的特定功能交給JXTA去實(shí)現(xiàn),大大提高了P2P應(yīng)用程序的開(kāi)發(fā)效率。
同時(shí),由于JXTA是一個(gè)開(kāi)放源代碼項(xiàng)目,可以根據(jù)自己的需要進(jìn)行適當(dāng)修改,使得所開(kāi)發(fā)的應(yīng)用程序具有高可擴(kuò)展性。與傳統(tǒng)的分布式系統(tǒng)相比,P2P與JXTA技術(shù)具有無(wú)可比擬的優(yōu)勢(shì),將它們引入遠(yuǎn)程教育應(yīng)用系統(tǒng)開(kāi)發(fā)有著廣闊的應(yīng)用前景。
這里在分析了JXTA的體系結(jié)構(gòu)及核心協(xié)議后,利用JXTA技術(shù)設(shè)計(jì)和開(kāi)發(fā)了一個(gè)簡(jiǎn)單的并且具有可擴(kuò)展、互操作性強(qiáng)及高可用性的P2P遠(yuǎn)程學(xué)習(xí)系統(tǒng)。通過(guò)該系統(tǒng),學(xué)生可以更充分更有效地利用遠(yuǎn)程教學(xué)過(guò)程中的共享資料進(jìn)行自主學(xué)習(xí),更加方便學(xué)生和教師之間的交流,提高學(xué)生的學(xué)習(xí)積極性,促進(jìn)學(xué)生學(xué)習(xí)成績(jī)的提高;同時(shí)也有利于教師在教育過(guò)程中角色的轉(zhuǎn)變,使教師從課堂主講人轉(zhuǎn)向?qū)W生學(xué)習(xí)的組織者和指導(dǎo)者,幫助輔導(dǎo)學(xué)生進(jìn)行自主學(xué)習(xí),提高學(xué)生的學(xué)習(xí)水平。
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論