摘 要:針對(duì)目前網(wǎng)絡(luò)多媒體應(yīng)用存在的問(wèn)題,本文首先描述了組播技術(shù),為使系統(tǒng)具有很好的可擴(kuò)展性,提出了基于MVC模式來(lái)架構(gòu)校園網(wǎng)多媒體組播系統(tǒng),詳細(xì)給出了該系統(tǒng)的設(shè)計(jì)方案,以及關(guān)鍵技術(shù)難點(diǎn)的實(shí)現(xiàn)。通過(guò)實(shí)驗(yàn)測(cè)試,該系統(tǒng)運(yùn)行良好、穩(wěn)定,可維護(hù)性強(qiáng),音/視頻傳輸流暢自然,網(wǎng)絡(luò)流量明顯降低。
關(guān)鍵詞:MVC;組播;校園網(wǎng)多媒體
中圖分類(lèi)號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言
教育信息化是當(dāng)前我國(guó)高校教學(xué)改革的一項(xiàng)重要內(nèi)容,在教育信息化進(jìn)程中,大學(xué)數(shù)字校園建設(shè)已受到各個(gè)學(xué)校的高度重視,從資源(如圖書(shū)、講義、課件等)到活動(dòng)(包括教、學(xué)、管理、服務(wù)、辦公等)均要實(shí)現(xiàn)數(shù)字化,以上所有內(nèi)容的建設(shè)都要依托于校園網(wǎng)。概括起來(lái),目前校園網(wǎng)主要提供以下服務(wù):(1)WWW服務(wù);(2)E-mail服務(wù);(3)FTP服務(wù);(4)多媒體服務(wù)。其中,WWW服務(wù)、E-mail服務(wù)、FTP服務(wù)相對(duì)技術(shù)比較成熟,而多媒體業(yè)務(wù)與一般業(yè)務(wù)相比,由于其數(shù)據(jù)量大,時(shí)延敏感性強(qiáng),聲音和圖像的播放要流暢同步,對(duì)網(wǎng)絡(luò)時(shí)延和網(wǎng)絡(luò)帶寬要求很高,時(shí)至今日,雖然取得了重大成就,但仍存在很多問(wèn)題。再有,目前校園網(wǎng)幾乎都采用交換式以太網(wǎng)技術(shù),運(yùn)行在該環(huán)境下的網(wǎng)絡(luò)課堂、電子白板等服務(wù),都是采用廣播方式,嚴(yán)重的浪費(fèi)了網(wǎng)絡(luò)帶寬和主機(jī)資源,并且服務(wù)質(zhì)量較差。而組播技術(shù)可以很好的解決這個(gè)問(wèn)題。組播是允許一臺(tái)或多臺(tái)主機(jī)發(fā)送單一數(shù)據(jù)包到多臺(tái)主機(jī)的TCP/IP網(wǎng)絡(luò)技術(shù),按協(xié)議層次可以分為應(yīng)用層組播、網(wǎng)絡(luò)層組播(IP組播)、數(shù)據(jù)鏈路層組播三種[1]。
2 校園網(wǎng)多媒體組播系統(tǒng)架構(gòu)方案
2.1 搭建網(wǎng)絡(luò)環(huán)境
校園網(wǎng)目前大都采用交換式以太網(wǎng)技術(shù),該技術(shù)的采用,雖然使得沖突域明顯減少,但所有主機(jī)仍然處于一個(gè)大的廣播域中,很容易造成“廣播風(fēng)暴”[2]。雖然,有些系統(tǒng)也采用了組播技術(shù)來(lái)解決多媒體業(yè)務(wù)中碰到的問(wèn)題,但實(shí)際上,并沒(méi)有實(shí)現(xiàn)“真正意義”的組播,對(duì)組播數(shù)據(jù)的處理仍然是廣播方式,僅僅在應(yīng)用層實(shí)現(xiàn)了組播,在網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層并沒(méi)有實(shí)現(xiàn)組播,網(wǎng)絡(luò)上流動(dòng)著大量的廣播包,嚴(yán)重的浪費(fèi)了網(wǎng)絡(luò)帶寬和主機(jī)資源。由此本文提出了校園網(wǎng)多媒體系統(tǒng)的組播思想:在交換式以太網(wǎng)中部署IGMP Snooping協(xié)議[2],并且結(jié)合VLAN技術(shù),根據(jù)這種思想搭建的網(wǎng)絡(luò)環(huán)境,從應(yīng)用層、網(wǎng)絡(luò)層到數(shù)據(jù)鏈路層均實(shí)現(xiàn)了組播,徹底改善了網(wǎng)絡(luò)性能。筆者已經(jīng)通過(guò)EtherPeek協(xié)議分析器對(duì)校園網(wǎng)內(nèi)流動(dòng)的組播數(shù)據(jù)包進(jìn)行過(guò)測(cè)試并證實(shí)了這一點(diǎn)。
2.2 架構(gòu)軟件方案
為了使系統(tǒng)具有可維護(hù)性、可重用性、可移植性,本文提出了基于MVC模式的軟件架構(gòu)。MVC,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller流程徹底分離。一個(gè)應(yīng)用被分成三個(gè)層:模型層(即:數(shù)據(jù)持久層)、視圖層(即:表示層)、控制層(即:業(yè)務(wù)層)[3]。MVC模式是第一個(gè)將“表示邏輯”與“業(yè)務(wù)邏輯”分離的設(shè)計(jì)模式。
在系統(tǒng)架構(gòu)方案中,數(shù)據(jù)持久層主要負(fù)責(zé)數(shù)據(jù)庫(kù)系統(tǒng)、事務(wù)處理等職責(zé),可以采用Hibernate框架來(lái)實(shí)現(xiàn);表示層主要用來(lái)處理客戶(hù)請(qǐng)求,調(diào)用相應(yīng)的邏輯模塊,并把結(jié)果以動(dòng)態(tài)網(wǎng)頁(yè)的形式返回到客戶(hù)端,可采用JSP/Struts技術(shù)來(lái)實(shí)現(xiàn);業(yè)務(wù)層主要用來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)具體的業(yè)務(wù)邏輯,這是系統(tǒng)應(yīng)用的核心,可采用Struts框架來(lái)實(shí)現(xiàn),參見(jiàn)圖1[5]。
Struts框架的使用,使得校園網(wǎng)多媒體組播系統(tǒng)具有了靈活、擴(kuò)展性強(qiáng)、復(fù)用程度高的特點(diǎn)。Struts是Apache組織的一個(gè)開(kāi)放源代碼項(xiàng)目,Struts底層機(jī)制也運(yùn)用了MVC模式。ActionServlet完成了控制器的功能,讀取配置文件(struts-config.xml),為不同的Struts模塊初始化相應(yīng)的ModuleConfig對(duì)象??刂破鹘邮誋TTP請(qǐng)求,并從ActionConfig中找出對(duì)應(yīng)于該請(qǐng)求的Action子類(lèi),將請(qǐng)求分發(fā)到具體的Action類(lèi)進(jìn)行處理,并根據(jù)處理結(jié)果選擇調(diào)用JSP 文件;如果沒(méi)有對(duì)應(yīng)的Action,控制器直接將請(qǐng)求轉(zhuǎn)發(fā)給JSP頁(yè)面。控制器調(diào)用具體Action的execute方法之前,Action Form對(duì)象將利用HTTP請(qǐng)求中的參數(shù)來(lái)填充自己,自動(dòng)將這些參數(shù)以JavaBean的方式保存在Servlet Context中,這樣它們就可以被其他Action對(duì)象或者JSP調(diào)用[4]。
Action一般只包含一個(gè)execute方法,它負(fù)責(zé)執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,執(zhí)行完成之后,返回一個(gè)ActionForward對(duì)象,控制器通過(guò)該ActionForward對(duì)象來(lái)進(jìn)行轉(zhuǎn)發(fā)工作。通常,將獲取數(shù)據(jù)和執(zhí)行業(yè)務(wù)邏輯的功能放到具體的JavaBean中,而Action只負(fù)責(zé)完成與控制有關(guān)的功能,參見(jiàn)圖2。
3 系統(tǒng)主要技術(shù)難點(diǎn)的實(shí)現(xiàn)
校園網(wǎng)多媒體組播系統(tǒng)主要功能有:教師中心、學(xué)生中心、組播中心,教師中心和學(xué)生中心主要完成教師、學(xué)生信息的注冊(cè)與管理,其中教師中心包括教師對(duì)組播信息的發(fā)布(組播地址由管理員分配)。組播中心包括查詢(xún)組播、加入組播和離開(kāi)組播三大功能。查詢(xún)組播主要完成組播信息的隨機(jī)查詢(xún)和條件查詢(xún),隨機(jī)查詢(xún)是指學(xué)生登錄系統(tǒng)后可以隨機(jī)的從當(dāng)前活動(dòng)的組播中選擇,按條件查詢(xún)是指學(xué)生登錄系統(tǒng)后可以選擇自己感興趣的課程和老師所在的組。加入組播主要完成實(shí)時(shí)的課堂教學(xué)過(guò)程,包括聲音、視頻和文字,學(xué)生若有疑問(wèn),可以在線對(duì)教師發(fā)問(wèn),教師可以馬上做出應(yīng)答。加入組播和離開(kāi)組播都是動(dòng)態(tài)的,學(xué)生可以動(dòng)態(tài)的加入組和離開(kāi)組,系統(tǒng)的穩(wěn)定性不受組規(guī)模(學(xué)生數(shù)量)的影響。在圖3中給出了查詢(xún)組播的Web頁(yè)面??紤]到該頁(yè)面要實(shí)現(xiàn)兩個(gè)功能,既可以隨機(jī)查詢(xún)當(dāng)前活動(dòng)的組播,也可以根據(jù)條件查詢(xún)當(dāng)前活動(dòng)的組播。所以在查詢(xún)組播的具體實(shí)現(xiàn)中采用了Action中的LookupDispatchAction,該技術(shù)的引用,提高了系統(tǒng)的靈活性和可重用性。
查詢(xún)組播的具體實(shí)現(xiàn)過(guò)程及其部分代碼說(shuō)明如下:
首先在multicastManage.jsp頁(yè)面中加入:
;
請(qǐng)注意兩個(gè)name的取值: \" method.random \"和\"method.condition\"。
在Struts-config.xml配置文件中加入:
type=\"com.sjtu.web. MulticastManageAction\" parameter=\"method\" >
請(qǐng)注意parameter取值\"method\"。
接下來(lái),重點(diǎn)來(lái)實(shí)現(xiàn)MulticastManageAction,該Action中有兩個(gè)函數(shù),random:實(shí)現(xiàn)了隨機(jī)查詢(xún)組播;condition:實(shí)現(xiàn)了條件查詢(xún)組播。
public class MulticastManageAction extends LookupDispatchAction {
public ActionForward random(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
public ActionForward condition(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
multicastManageForm matchForm=(multicastManageForm)form;
List members=1;
try{
members=service.multicastQuery(matchForm.getCourse( ), matchForm.getTeacher(),matchForm.getDeparment( ));
request.setAttribute(\"addresss\", addresss);
return mapping.findForward(\"matchSuccess\");
}catch(Exception e){
return mapping.findForward(\"matchFail\");
}
}
protected Map getKeyMethodMap() {
Map map=new HashMap();
map.put(\"method.random\", \"random\");
map.put(\"method.condition\", \"condition\");
return map;
}
}
請(qǐng)注意getKeyMethodMap(),實(shí)現(xiàn)了將\"method.random\"和\"method.condition\"兩個(gè)Key值放入了map中,而這兩個(gè)值就是multicastManage.jsp中兩個(gè)按鈕的name。
4 實(shí)驗(yàn)測(cè)試與結(jié)論
為檢測(cè)系統(tǒng)性能,本文對(duì)MVC模式下校園網(wǎng)多媒體系統(tǒng)進(jìn)行了測(cè)試。為測(cè)試方便,實(shí)驗(yàn)時(shí)視頻大小為160×120,視頻內(nèi)容主要以教師頭像為主,采用MPEG-4視頻編碼標(biāo)準(zhǔn),分別對(duì)傳統(tǒng)通信方式和組播通信方式流量進(jìn)行了比較。DL(Down Load)為下行速率,UL(Up Load)為上行速率(參見(jiàn)表1和表2)。
從表1和表2可以看出,在傳統(tǒng)通信方式下,隨著訪問(wèn)量的增加,網(wǎng)絡(luò)流量顯著增加,服務(wù)質(zhì)量明顯下降,而在組播通信方式下,網(wǎng)絡(luò)流量不會(huì)隨著訪問(wèn)量增加而增加,并且獲得了很好的主觀質(zhì)量評(píng)價(jià)。目前,基于MVC模式下校園網(wǎng)多媒體組播系統(tǒng)運(yùn)行穩(wěn)定可靠,音/視頻傳輸流暢自然。
參考文獻(xiàn)
[1] 王軍.交換式以太網(wǎng)中連續(xù)實(shí)時(shí)流媒體的可靠多播[J].軟件學(xué)報(bào),2004,15(2):496-502.
[2] 王軍.交換式以太網(wǎng)上的多播協(xié)議[J].軟件學(xué)報(bào),2004,14.
[3] 劉春祥.基于MVC 模式的網(wǎng)絡(luò)視頻檢索系統(tǒng)設(shè)計(jì)與研究[J].信息技術(shù),2006,7:7-11.
[4] 張素珍.基于Struts架構(gòu)的郵政遠(yuǎn)程教育平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2006,7:55-58.
[5] 劉運(yùn)龍.一個(gè)基于雙MVC架構(gòu)的遠(yuǎn)程教學(xué)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2006,5:1-5.
作者簡(jiǎn)介:
張美枝(1973-),女,本科,副教授.研究領(lǐng)域:網(wǎng)絡(luò)多媒體與軟件工程的研究.