国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于P2P和JXTA的選課系統(tǒng)的研究與設(shè)計

2009-01-06 04:55曾志文

何 亞 曾志文

[摘 要]針對網(wǎng)上選課系統(tǒng)因短期高負載而導(dǎo)致性能降低甚至崩潰的問題,提出采用P2P技術(shù)將選課的負載分布在客戶端,提高選課系統(tǒng)的性能。對基于P2P和JXTA的選課系統(tǒng)做了總體設(shè)計,包括服務(wù)器端、客戶端以及數(shù)據(jù)庫的設(shè)計。

[關(guān)鍵詞]P2P JXTA 選課系統(tǒng)

[中圖分類號]TP319[文獻標(biāo)識碼]A[文章編號]1007-9416(2009)11-0004-02

1 前言

目前大部分高校的選課系統(tǒng)是基于B/S架構(gòu)的,所有的學(xué)生都要從服務(wù)器獲取學(xué)期開課信息以及自己已經(jīng)修過的課程等信息;同時服務(wù)器要對每個學(xué)生選擇的課程進行判斷,使得服務(wù)器的負擔(dān)很重,造成系統(tǒng)響應(yīng)時間增長,甚至導(dǎo)致系統(tǒng)崩潰。這種短期的高負載特性,使得選課系統(tǒng)無法進行選課,影響選課的正常進行。

基于此,本文設(shè)計了一種分布式選課系統(tǒng),從當(dāng)前熱門的分布式技術(shù)P2P出發(fā),利用P2P網(wǎng)絡(luò)中,節(jié)點之間可以直接交換資源而不必通過服務(wù)器。在客戶端實現(xiàn)相同專業(yè)的學(xué)生可以從其他的客戶端共享學(xué)期開課信息。而對學(xué)生個人的已修課程、所得學(xué)分學(xué)時等信息,這些信息是每個同學(xué)都不一樣的,則從服務(wù)器下載。將對學(xué)生所選課程的檢測轉(zhuǎn)移到客戶端處理,減輕服務(wù)器的負擔(dān)。

1.1 P2P技術(shù)介紹

P2P技術(shù),也稱對等網(wǎng)絡(luò)或點對點(peer to peer)技術(shù),是一種網(wǎng)絡(luò)結(jié)構(gòu)的思想,是目前國際計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域研究的一個熱點。它打破了傳統(tǒng)的客戶端/服務(wù)器(C/S)模式,在對等網(wǎng)絡(luò)中,每個節(jié)點的地位相同,具備客戶端和服務(wù)器雙重特性,可以同時作為服務(wù)使用者和服務(wù)提供者,整個網(wǎng)絡(luò)結(jié)構(gòu)中不存在中心節(jié)點(或中心服務(wù)器)。目前P2P模型可以分為以下幾個種類:

(1)純P2P模型:采用隨機圖的組織方式形成一個松散的網(wǎng)絡(luò),不依賴任何中心服務(wù)器,網(wǎng)絡(luò)配置簡單。一旦P2P應(yīng)用程序下載到計算機內(nèi)存中,網(wǎng)絡(luò)中的端就動態(tài)地發(fā)現(xiàn)其他連接的端,相連端之間的通信完全不需要來自服務(wù)器的任何幫助。純P2P模型存在的問題就是網(wǎng)絡(luò)上的端發(fā)現(xiàn)問題,因為沒有一個中心管理者注冊登錄到網(wǎng)絡(luò)上的端,所以用戶必須自己定位其他的端。另外,這種網(wǎng)絡(luò)直徑不可控,可擴展性差。

(2)帶有一個簡單發(fā)現(xiàn)服務(wù)器的P2P :在這種網(wǎng)絡(luò)中,服務(wù)器僅提供相連端的清單來輔助端,建立連接和通信仍然是端之間的事情。為了查詢某個文件,計算機必須逐個詢問所有的端,直到找到所需的資源或者返回錯誤信息,可見這種網(wǎng)絡(luò)的效率很低。

(3)帶有發(fā)現(xiàn)和查找服務(wù)器的P2P:這種模型中,服務(wù)器用來提供相連端的清單和它們的可用資源。這種模型減輕了端的負擔(dān),因為不再需要通過訪問每個端來查找必要的信息。這種模型中的服務(wù)器初始化兩個端間的通信,然后這兩個端建立通信、保持連接并執(zhí)行各種活動。

3 JXTA簡介

JXTA技術(shù)是美國Sun公司針對原有P2P系統(tǒng)的缺陷而設(shè)計的一種解決現(xiàn)代P2P分布計算的網(wǎng)絡(luò)編程和計算平臺。該技術(shù)致力于創(chuàng)建一個通用的平臺,提供P2P程序所需的底層服務(wù)。JXTA技術(shù)的核心在于一套獨立于編程語言、系統(tǒng)平臺和網(wǎng)絡(luò)平臺的協(xié)議集。JXTA由6個協(xié)議組成,這套協(xié)議集描述和實現(xiàn)了P2P應(yīng)用最基本的需求,其中的每一個協(xié)議都可以很容易地實現(xiàn)和集成到P2P的服務(wù)和應(yīng)用中。使用這些協(xié)議,對等點可以互相合作建立自我組織、自我管理的對等組,不必關(guān)心他們在剛絡(luò)中的位置,并且不需要集中式的管理機構(gòu)。

JXTA的體系結(jié)構(gòu)由三層組成:最底層是JXTA核心層,這一層封裝了最根本的東西,包括對等點、對等組、Peer發(fā)現(xiàn)、Peer通信、Peer監(jiān)視和相關(guān)的安全原語;服務(wù)層擴展了核心層的功能,它包括對于P2P網(wǎng)絡(luò)不是必需的、但很通用的功能,如查找、共享、索引、代碼緩存和內(nèi)容緩存的機制;應(yīng)用層包括了應(yīng)用JXTA服務(wù)構(gòu)建出的P2P應(yīng)用程序。

4 基于P2P和JXTA的選課系統(tǒng)的設(shè)計

結(jié)合P2P模型的特點,系統(tǒng)中采用帶有發(fā)現(xiàn)和查找服務(wù)器的P2P模型。系統(tǒng)總體結(jié)構(gòu)如圖1所示。其中,虛線代表登錄消息,它是在客戶端和服務(wù)器端之間進行;實線代表選課信息數(shù)據(jù)的請求和傳輸路徑,在客戶端之間或客戶端和服務(wù)器端之間進行。如果沒有該專業(yè)在線的客戶端時,服務(wù)器就發(fā)送學(xué)期開課信息和學(xué)生本人的己修課程信息到客戶端;有的話,服務(wù)器就發(fā)送在線節(jié)點的信息和學(xué)生本人的已修課程信息,請求的客戶端根據(jù)在線節(jié)點的信息,從中選擇一個鄰近的節(jié)點,建立連接去共享學(xué)期開課信息。每一個客戶端既能成為數(shù)據(jù)傳輸服務(wù)器,也能成為數(shù)據(jù)接收客戶端??蛻魴C從服務(wù)器獲取己登錄的客戶端列表,與鄰近客戶機建立連接,完成數(shù)據(jù)傳輸,傳輸過程不經(jīng)過目錄服務(wù)器,因此可以大大減少服務(wù)器的工作量。

4.1 服務(wù)器設(shè)計

服務(wù)器端主要的功能包括消息管理,路由表維護,文件管理,教務(wù)管理員和教師模塊。

4.1.1 消息管理模塊

負責(zé)與客戶端的通信,向客戶端發(fā)送或者接收來自客戶端的消息。服務(wù)器接收到的消息有以下幾種:

(1)登錄消息:消息管理器接收到登錄消息后,調(diào)用路由表管理模塊,更新路由表,并在路由表中查找相同專業(yè)的在線節(jié)點的信息,然后把檢索結(jié)果發(fā)送回客戶端。對應(yīng)消息的命令是:ListOnlineUserInfo。

(2)獲取選課信息的請求:當(dāng)客戶端不能在其他在線節(jié)點獲得學(xué)期開課信息時,向服務(wù)器請求獲取學(xué)期開課信息,消息管理器調(diào)用文件管理模塊,根據(jù)學(xué)生所在的專業(yè),根據(jù)客戶端的輸入管道與客戶端建立通信,發(fā)送該專業(yè)的學(xué)期開課信息。對應(yīng)消息的命令是:GetCourseData。

(3)接收選課結(jié)果信息:當(dāng)客戶端完成選課后,向服務(wù)器提交選課結(jié)果,消息管理模塊調(diào)用文件管理模塊響應(yīng)請求,并把數(shù)據(jù)保存到數(shù)據(jù)庫中。對應(yīng)消息的命令是:PostCourseData。

(4)注銷:當(dāng)學(xué)生退出選課時,給服務(wù)器發(fā)送注銷的消息,消息管理模塊調(diào)用路由表管理函數(shù)更新路由表,在路由表中刪除該客戶端的信息。

4.1.2 路由表管理

為了記錄所有在線節(jié)點的信息,服務(wù)器維護一張在線客戶端的信息表,當(dāng)有學(xué)生登錄時,記錄客戶端的信息并且查詢相同專業(yè)的在線節(jié)點信息返回給客戶端。當(dāng)學(xué)生退出選課系統(tǒng)時,從路由表中刪除學(xué)生信息。路由表中記錄的節(jié)點信息主要包括學(xué)生學(xué)號、年級、專業(yè)、客戶端的IP地址和輸入通道ID。

4.1.3 文件管理

服務(wù)器端需要傳輸?shù)男畔▽W(xué)期開課信息和學(xué)生個人的已修課程信息發(fā)送給客戶端,接收客戶端提交的選課結(jié)果。

4.1.4 教務(wù)員模塊

教務(wù)管理員的功能主要是對學(xué)生、班級和課程信息進行管理及查詢,開課審批,批量選課,選課結(jié)果審核,數(shù)據(jù)庫備份和發(fā)布公告。

4.1.5 教師模塊

教師模塊的功能主要是開課申請,查看選課學(xué)生,打印選課學(xué)生和考試成績管理。

4.2 客戶端設(shè)計

為了減輕服務(wù)器的負擔(dān),系統(tǒng)將對每個學(xué)生所選課程的檢測轉(zhuǎn)移到客戶端處理,采用Java的Applet方式實現(xiàn)??蛻舳说墓δ苤饕ㄎ募芾?消息管理和學(xué)生選課三個模塊。

4.2.1 文件管理

和服務(wù)器端類似,文件管理模塊需要實現(xiàn)XML文件的生成與解析。主要包括將服務(wù)器或者其他節(jié)點傳輸來的學(xué)期開課信息和學(xué)生個人的已修課程信息進行XML文件的解析,將選課結(jié)果生成XML文件提交給服務(wù)器。

4.2.2 消息管理

負責(zé)與其他客戶端和服務(wù)器進行通信,向其他端發(fā)送或者接收來自其他端的消息。當(dāng)客戶端啟動后,建立一個輸入管道通告,并監(jiān)聽管道,當(dāng)接收到消息的時候,就根據(jù)消息中的命令調(diào)用相應(yīng)的應(yīng)答函數(shù),處理完后向其他端發(fā)送響應(yīng)消息??蛻舳私邮盏降南⒂幸韵聨追N:

(1)接收用戶列表消息:消息管理器接收到服務(wù)器發(fā)送來的在線節(jié)點信息,從中選擇一個鄰近的節(jié)點,建立連接,進行通信。

(2)發(fā)送獲取選課信息的請求:向同專業(yè)的在線節(jié)點發(fā)送獲取選課信息的請求。

(3)接收獲取選課信息的請求:當(dāng)收到其他的客戶端需要獲取學(xué)期開課信息的請求時,根據(jù)對方的輸入管道ID建立通信,發(fā)送選課信息。

(4)提交選課結(jié)果:選課完成后,將選課結(jié)果提交給服務(wù)器保存。

4.2.3 學(xué)生選課模塊

為了減輕服務(wù)器的負擔(dān),將學(xué)生選課的業(yè)務(wù)處理程序以Applet的方式嵌入在客戶端頁面中。學(xué)生選課模塊的功能主要包括:查看開課信息、查看已修課、選課、查看己選課以及退選課。

4.3 數(shù)據(jù)庫設(shè)計

選課系統(tǒng)中的數(shù)據(jù)庫主要存儲各專業(yè)的學(xué)期開課信息和選課結(jié)果信息,數(shù)據(jù)庫中主要的表包括:在線節(jié)點信息表(學(xué)號、IP地址、年級、專業(yè))、管理員表(用戶ID、用戶名、密碼、系部)、教師信息表(教師ID、教師姓名、系別、密碼、教師簡介)、開課信息表(課程編號、課程名稱、開課學(xué)期、開課年級、開課專業(yè)、主講教師、教師介紹、課程介紹、上課時間、上課地點、先修課、學(xué)時、學(xué)分)、選課結(jié)果表(學(xué)號、課程編號、課程名稱、選課學(xué)期、學(xué)時、學(xué)分、上課時間),還要使用教務(wù)系統(tǒng)中其他子系統(tǒng)中的數(shù)據(jù),如學(xué)籍系統(tǒng)中的學(xué)生基本信息表等。

5 結(jié)語

P2P 技術(shù)為互聯(lián)網(wǎng)的發(fā)展帶來了深遠的影響,也為IT產(chǎn)業(yè)帶來了無限的商機,最近幾年,P2P技術(shù)更是發(fā)展迅速。目前,在文件共享、分布式計算等應(yīng)用領(lǐng)域P2P顯示出很強的技術(shù)優(yōu)勢。相信隨著對P2P 技術(shù)研究的不斷深入,P2P所帶來的技術(shù)創(chuàng)新和應(yīng)用創(chuàng)新還將繼續(xù),它將為社會的發(fā)展做出巨大的貢獻。

[參考文獻]

[1] 陳貴海.對等網(wǎng)絡(luò):結(jié)構(gòu)、應(yīng)用與設(shè)計 [M].北京:清華大學(xué)出版社,2007.

[2] 孔祥禎. 淺談P2P網(wǎng)絡(luò)結(jié)構(gòu)[J].科技廣場,2009,(1):232-234.

[3] Ralf Steinmetz . P2P 系統(tǒng)及其應(yīng)用 [M].北京:機械工業(yè)出版社,2008,9-15.

[4] 陳鋒.基于JXTA的P2P文件共享系統(tǒng)的實現(xiàn)研究[J].計算機科學(xué),2007,34(12):126-128.

[5] 苗坤.基于JXTA的P2 P文件共享系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2009,(2):9-13.