2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘 要2</b></p><p>  Abstract2</p><p>  1 前 言3</p><p>  2 視頻會議系統(tǒng)的基本原理4</p><p>  3視頻會議系統(tǒng)的設(shè)計

2、和實現(xiàn)5</p><p>  3.1 開發(fā)環(huán)境簡介5</p><p>  3.1.1 Java語言及其開發(fā)工具簡介5</p><p>  3.1.2 系統(tǒng)開發(fā)硬件環(huán)境6</p><p>  3.2 系統(tǒng)的具體實現(xiàn)6</p><p>  3.2.1 JavaGroups的具體實現(xiàn)6</p>

3、<p>  3.2.2 對JavaGroups的擴展實現(xiàn)視頻會議系統(tǒng)9</p><p>  3.3視頻會議系統(tǒng)的相關(guān)技術(shù)13</p><p>  3.3.1 Java媒體框架13</p><p>  3.3.2 CSCW13</p><p>  4 結(jié) 束 語14</p><p>  5

4、 謝 辭14</p><p>  6 參考文獻14</p><p><b>  摘 要</b></p><p>  傳統(tǒng)的會議總是需要先預(yù)定時間、地點,統(tǒng)一開會人員及布置會場、記錄、主持等,會議所要解決的問題或是要制定的方案、決策常常由于許多客觀因素而耽擱。視頻會議(VideoConference)系統(tǒng)是一種能把聲音、圖像、文本等多

5、種信息從一個地方傳送到另一個地方的通信系統(tǒng),它解決了以上的問題,免去了很多會議開支,縮短了解決問題的周期,使客觀因素的影響大大減小。視頻會議系統(tǒng)作為計算機技術(shù)和通信技術(shù)相結(jié)合的產(chǎn)物,正隨著波及全球的信息高速公路的興起而迅速發(fā)展起來。本文介紹了視頻會議系統(tǒng)的基本概念,與其相關(guān)的Java媒體框架(JMF:Java Media Framework)和計算機支持的協(xié)同工作(CSCW:Computer Supported Cooperative

6、Work)系統(tǒng),Java語言及其開發(fā)環(huán)境,并根據(jù)視頻會議系統(tǒng)的基本結(jié)構(gòu)和一些相關(guān)技術(shù),說明了一個基于JavaGroups工具包的小型視頻會議系統(tǒng)的設(shè)計和實現(xiàn)。</p><p>  關(guān)鍵詞: 視頻會議系統(tǒng);JavaGroups工具包;Java媒體框架;計算機支持的協(xié)同工作</p><p><b>  Abstract </b></p><p> 

7、 Traditionally,holding a conference needs some complex procedures for a long time ,such as pre-arranging the schedule ,place ,people ,preparing</p><p>  the hall ,recorder ,master and so on. The goal of a me

8、eting , resolving problems or making plans and decisions ,will be usually delayed by such</p><p>  objective factors. The video conference system is a communication system</p><p>  that transmit

9、s many kinds of signals such as video, audio, text and so on from one place to another. It is created to save money and time because of meetings and helps reducing the influence of objective factors. The</p><p

10、>  video conference system is the combination of computer technology and</p><p>  communication technology, and it is now developing very fast with the National Information Infrastructure of the whole wor

11、ld. This article introduces the basic concepts of the video conference ,JMF(Java Media Framework) and the CSCW (Computer Supported Coorperative Work)system and Java language. According to the basic structure of video co

12、nference and some other technology,it describes the design and implementation of a mini-video conference system based-on JavaGroups toolkit.</p><p>  Key words :video conference system;JavaGroups toolkit;JMF

13、;CSCW</p><p><b>  1 前 言</b></p><p>  會議,是人類社會經(jīng)濟生活中不可或缺的一部分,有關(guān)的研究表明,通信的有效性約55%依賴于面對面(face-to-face)的視覺效果,38%依賴于說話語音,視聽是人們獲取信息的最重要形式,而面對面的討論(face-to-face)是人類表達思想最豐富的一種方式。自工業(yè)革命后,科技的發(fā)達

14、使得通信技術(shù)有了突破性的進展,電話和電報的發(fā)明,使遠地的人們可以立即傳送聲音和文檔。然而,除了言語的溝通外,人類更注重的是表情和肢體的表達,僅僅是聲音的傳送已經(jīng)無法滿足現(xiàn)代人交流的需求,即時并且互動的影像更能真實自然的傳送信息。(1)視頻會議系統(tǒng)正是在這種迫切需要的推動下產(chǎn)生的新一代通信產(chǎn)品。</p><p>  視頻會議(VideoConference)系統(tǒng)是一種能把聲音、圖像、文本等多種信息從一個地方傳送到另

15、一個地方的通信系統(tǒng)。有效發(fā)送基于視頻的信息,可以在遠程部門和部門間開展合作,同時還可以實現(xiàn)諸如視頻會議和視頻點播等視頻應(yīng)用技術(shù)。視頻會議系統(tǒng)是計算機技術(shù)與通信技術(shù)相結(jié)合的產(chǎn)物,它作為多媒體通信技術(shù)的一個重要組成部分,正隨著波及全球的信息高速公路的興起而迅速發(fā)展起來。</p><p>  視頻會議從出現(xiàn)至今已有三十多年,從最開始的減少旅行費用,提高工作效率,到911時的加速國內(nèi)外協(xié)作,保障人身安全等,再到SARS時

16、保障社會的穩(wěn)定和各項工作最低限度的運轉(zhuǎn),視頻會議的優(yōu)越性正在越來越被廣泛的顯示出來。(2)鑒于視頻會議系統(tǒng)在軍事、經(jīng)濟、文化等領(lǐng)域給人類帶來的巨大作用和經(jīng)濟效益,各國競相研究和開發(fā)視頻會議系統(tǒng),特別是在超大規(guī)模集成電路、壓縮算法及視覺生理研究方面取得了突破性進展和關(guān)于視頻會議的一系列國際標(biāo)準(zhǔn)相繼出臺,以及各種圖像實時處理芯片紛紛推出后,視頻會議系統(tǒng)的實用化才得到長足的發(fā)展。目前國內(nèi)外的主要應(yīng)用有:</p><p>

17、;<b>  商務(wù)交流</b></p><p><b>  商業(yè)會議</b></p><p>  企業(yè)客戶服務(wù)和產(chǎn)品開發(fā)</p><p><b>  遠程教學(xué)和技術(shù)培訓(xùn)</b></p><p><b>  市場調(diào)查和情報收集</b></p>

18、<p><b>  遠程醫(yī)療和會診</b></p><p><b>  科研合作和工程設(shè)計</b></p><p><b>  跨國企業(yè)應(yīng)用</b></p><p><b>  招募員工</b></p><p>  從目前的發(fā)展來看,有關(guān)視頻會議

19、技術(shù)的研究很多,有關(guān)的產(chǎn)品也非常豐富,盡管視頻會議系統(tǒng)有十分誘人的廣闊前景,但在這個領(lǐng)域中還有相當(dāng)多的技術(shù)問題亟待解決,其中在現(xiàn)階段影響視頻會議系統(tǒng)實用性、通用性及友好性的相關(guān)技術(shù)和有關(guān)問題有:軟件技術(shù)、數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)技術(shù)、共享技術(shù)、資源控制技術(shù)、保密技術(shù)和會議模型技術(shù)。(3)</p><p>  本項課題主要研究的是用軟件的方式,配合一些必要的外設(shè),實現(xiàn)一個小型視頻會議系統(tǒng)。</p><p

20、>  2 視頻會議系統(tǒng)的基本原理</p><p>  視頻會議(VideoConference)系統(tǒng)的基本定義是:兩個或兩個以上地理位置不同的個人或群體,通過傳輸線路和多媒體設(shè)備,將聲音、圖像、視頻影像和文件資料交互的傳遞,達到即時并且互動的溝通,以便完成會議目的的系統(tǒng)。從定以上看,視頻會議是一種典型的多媒體通信,下圖是一個典型的視頻會議系統(tǒng)示意圖:</p><p>  圖1.1

21、一個典型的視頻會議系統(tǒng)的示意圖</p><p>  從上面的示意圖我們可以大致看出,視頻會議系統(tǒng)主要有三個部分組成,即通信網(wǎng)絡(luò)、會議終端和多點控制單元。視頻會議系統(tǒng)實質(zhì)上是計算機技術(shù)和通信技術(shù)相結(jié)合的產(chǎn)物,所以通信網(wǎng)絡(luò)是視頻會議系統(tǒng)的基礎(chǔ)組成部分之一,會議終端是將視頻、音頻、數(shù)據(jù)、信令等等各種數(shù)字信號分別進行處理后組合成的復(fù)合數(shù)字碼流,再將碼流轉(zhuǎn)變?yōu)榕c用戶-網(wǎng)絡(luò)兼容的接口,符合傳輸網(wǎng)絡(luò)所規(guī)定的信道幀結(jié)構(gòu)的信號格式

22、送上信道進行傳輸。多點控制單元是視頻會議系統(tǒng)用于多點視聽信息的傳輸與切換部分,它是根據(jù)一定的準(zhǔn)則處理視聽信號,并根據(jù)要求分配各個要連接的信道,但它并不是視頻會議所必須的。(1)</p><p>  通信網(wǎng)絡(luò)是一系列的設(shè)備、機構(gòu)和進程,通過它們,附著在網(wǎng)絡(luò)上的終端用戶設(shè)備能夠進行有意義的信息交換。它涉及到網(wǎng)絡(luò)傳輸協(xié)議、網(wǎng)絡(luò)編程接口等內(nèi)容。(4)</p><p>  視頻會議系統(tǒng)的終端設(shè)備承擔(dān)

23、了多種媒體信息的輸入、輸出和處理,以及用戶和網(wǎng)絡(luò)之間的連接、交互和控制等多項任務(wù)。它屬于用戶數(shù)字通信設(shè)備,在系統(tǒng)中處在用戶的視聽、數(shù)據(jù)輸入/輸出設(shè)備和網(wǎng)絡(luò)之間。(1)</p><p>  視頻會議中有時需要進行多點間的信息傳輸和交換,這時可以借助于多點控制單元(MCU)來實現(xiàn)。多點控制單元實際上就是一臺多媒體信息交換機,實現(xiàn)多點呼叫和連接,實現(xiàn)視頻廣播、視頻選擇、音頻混合、數(shù)據(jù)廣播等功能,完成各終端信號的匯接與切

24、換。MCU將各個終端送來的信號進行分離,抽取出音頻、視頻、數(shù)據(jù)和信令,分別送到相應(yīng)的處理單元,進行音頻混合或切換,視頻切換、數(shù)據(jù)廣播、路由選擇、會議控制、定時和呼叫處理等,處理后的信號由復(fù)用器按照H.221格式組幀,然后經(jīng)網(wǎng)絡(luò)接口送到指定端口。(5)</p><p>  3 視頻會議系統(tǒng)的設(shè)計和實現(xiàn)</p><p>  3.1 開發(fā)環(huán)境簡介</p><p> 

25、 3.1.1 Java語言及其開發(fā)工具簡介</p><p>  Java語言是當(dāng)今流行的新興網(wǎng)絡(luò)編程語言,它的面向?qū)ο蟆⒖缙脚_、分布應(yīng)用等特點給編程人員帶來了一種嶄新的計算概念,使WWW從最初的單純提供靜態(tài)信息發(fā)展到現(xiàn)在的提供各種各樣的動態(tài)服務(wù),發(fā)生了巨大的變化。Java的出現(xiàn)導(dǎo)致了程序設(shè)計領(lǐng)域的一場革命,它被譽為20世紀出現(xiàn)的最重要的技術(shù)之一。Java不僅能夠編寫小應(yīng)用程序?qū)崿F(xiàn)嵌入網(wǎng)頁的聲音和動畫功能,而且還

26、能夠應(yīng)用于獨立的大中型應(yīng)用程序,其強大的網(wǎng)絡(luò)功能能夠把整個Internet作為一個統(tǒng)一的運行平臺,極大的拓展了傳統(tǒng)單機或Client/Server模式應(yīng)用程序的外延和內(nèi)涵。自從1995年正式問世以來,Java已經(jīng)逐步從一種單純的計算機高級編程語言發(fā)展為一種重要的Internet平臺,并進而引發(fā)、帶動了Java產(chǎn)業(yè)的發(fā)展和壯大,成為當(dāng)今計算機業(yè)界不可忽視的力量和重要的發(fā)展潮流與方向。(6)</p><p>  概括

27、的說,Java是一種性能優(yōu)異的、簡單的、面向?qū)ο蟮?、分布式的、解釋的、健壯的、安全的、結(jié)構(gòu)的、中立的、可移植的、多線程的和動態(tài)的語言。</p><p>  Java的開發(fā)工具分成三大類,分別為:</p><p>  文本編輯器。這類工具只提供了文本編輯功能,它只是一種類似記事本的工具。這類工具進行多種編程語言的開發(fā),如C、C++、Java等。主要有UltraEdit和EditPlus等編輯

28、器。</p><p>  Web開發(fā)工具。這類工具提供了Web頁面的編輯功能,具體到Java主要就是JSP頁面的開發(fā)。主要有HomeSite等。</p><p>  集成開發(fā)工具。這類工具提供了Java的繼承開發(fā)環(huán)境,為那些需要集成Java與J2EE的開發(fā)者、開發(fā)團隊提供對Web應(yīng)用程序、Servlets、JSPs、EJBs、數(shù)據(jù)訪問和企業(yè)應(yīng)用的強大支持?,F(xiàn)在的很多工具屬于這種類型,也是J

29、ava開發(fā)工具的發(fā)展趨勢。主要有Jbuilder、WebGain、WebSphere Studio等。</p><p>  JBuilder是目前最好的Java開發(fā)工具之一,在協(xié)同管理、對J2EE和XML的支持等方面均走在其它產(chǎn)品的前面。</p><p>  JBuilder的主要特性有:</p><p>  提供與Tomcat(Tomcat 是一種有JSP環(huán)境的S

30、ervlet的容器。Servlet容器是代替用戶管理和調(diào)用 Servlet的運行時外殼)的集成,使Web開發(fā)更容易。</p><p>  提供了對企業(yè)應(yīng)用的開發(fā)功能,可以集成多種應(yīng)用服務(wù)器。</p><p>  提供了更簡單的程序發(fā)布功能,所有的應(yīng)用都可以打包。</p><p>  提供了團隊開發(fā)能力,可以集成多種版本控制產(chǎn)品。</p><p&g

31、t;  JBuilder是遵循Sun公司J2EE標(biāo)準(zhǔn)的可視化集成開發(fā)工具。它是一種處于市場領(lǐng)先地位的跨平臺環(huán)境,主要用于構(gòu)建具有行業(yè)實力的企業(yè)Java應(yīng)有程序。JBuilder繼承了Borland公司開發(fā)工具系列的優(yōu)秀特性,這使得用過Delphi、C++Builder的程序員很容易的過渡到JBuilder的開發(fā)環(huán)境中。(7)</p><p>  本系統(tǒng)中使用的Java開發(fā)工具為JBuilder9。</p&g

32、t;<p>  3.1.2 系統(tǒng)開發(fā)硬件環(huán)境</p><p>  CPU:P4 1.70G 內(nèi)存:256MB 硬盤:40GB</p><p>  操作系統(tǒng):Microsoft Windows2000 Professional</p><p>  3.2 系統(tǒng)的具體實現(xiàn)</p><p>  3.2.1 JavaGroups

33、的具體實現(xiàn)</p><p>  本系統(tǒng)是基于JavaGroups來分析和設(shè)計的。JavaGroups是一個由康奈爾大學(xué)開發(fā)的基于Java的工具包,它提供了可靠的組通信。 它的功能包含了向組內(nèi)所有成員發(fā)送消息,并確保每個成員接收到相同序列的消息。它的基本概念是一個類似于BDS套接字的頻道:用戶可以給出他們想加入的組的名字然后連接上,發(fā)送并接受消息,找回當(dāng)前加入的所有成員,并且當(dāng)有成員加入或離開時可以得到通知。同名的

34、所有頻道可以彼此“發(fā)現(xiàn)”,而且經(jīng)由一個頻道發(fā)送的消息可以被同一個組(有一樣的名字)中所有的頻道接收到。(8)</p><p>  JavaGroups的文件夾中包含了12個文件夾和31個java文件,把他們放在一起在JBuilder9中生成一個工程文件。該文件中則有12個Java包和31個Java文件。這些包分別為:blocks、conf、debug、demos、ensemble、log、persistence、

35、protocols、service、stack、tests和util。本文種主要討論了其中四個包的主要功能:</p><p><b>  service包:</b></p><p>  抽象類AbstractService:所有服務(wù)器實現(xiàn)的一個超類, 每一個服務(wù)器有兩個通訊頻道:一個被內(nèi)部服務(wù)器用來和組內(nèi)的合法成員通信,另一個被客戶服務(wù)器用來進行組間通信。</p

36、><p>  類ServiceRunner:以單機模式來啟動服務(wù)器。</p><p>  class: ServiceRunner</p><p>  public static method:</p><p>  main(String args[])根據(jù)args.length和Resourcename來確定是否啟動服務(wù)器。</p>

37、<p>  startService(ResourceBundle res)從特殊化的resource中抽取參數(shù),創(chuàng)建服務(wù)器實例并啟動它。</p><p>  Private static method: printUsage()打印這個類的作用。</p><p>  Public static field:</p><p>  CLIENT_CHAN

38、NEL_STACK 客戶通信頻道的協(xié)議棧。</p><p>  CLIENT_GROUP_NAME 客戶通信頻道的組名。</p><p>  SERVICE_CHANNEL_STACK 服務(wù)器通信頻道的協(xié)議棧。</p><p>  SERVICE_GROUP_NAME 服務(wù)器通信頻道的組名。</p><p>  接口lease:描述了一個被租

39、借管理器賦權(quán)的標(biāo)號,允許在一段限定的時間內(nèi)訪問一些資源。</p><p>  Interface:lease</p><p>  Public method:</p><p>  getExpiration()獲取租借期滿時間,租借期滿時間總是一個絕對的值。</p><p>  getDuration()檢查租借是否期滿。</p>

40、<p>  getLeaseTarget()獲取租借的對象并返回代表租借源的唯一標(biāo)示符。</p><p>  getTenant()獲取該租借的承租者并返回獲得租借的實體的唯一標(biāo)示符。</p><p>  getFactory()獲取創(chuàng)建該租借的LeaseFactory的實例</p><p>  接口LeaseFactory:負責(zé)批準(zhǔn)新的租借,更新現(xiàn)有

41、的租借并刪除不需要的租借。</p><p>  類LeaseFactoryClient:是接口LeaseFactory的一個實現(xiàn),它代表了包含一個或多個LeaseFactotyService實例的組中被批準(zhǔn)的租借。</p><p>  類LeaseFactoryService:是能夠租借資源給用戶的服務(wù)器。租借請求通過用戶-服務(wù)器通訊頻道發(fā)出,并由message headers中的Leas

42、eRequestHeader的存在進行識別。在每個message中可能只有一個租借請求,它包含了租借期限和請求租借的實體的信息,有效載荷payload信息包含了對租借資源的唯一識別。</p><p>  類LeaseRequestHeader:Header的子類,代表了租借請求。</p><p>  類LeaseResponseHeader:Header的子類,代表了服務(wù)器的響應(yīng),在消息中

43、存在這個header表示先前的請求成功了。header的類型決定了滿足了何種類型的請求。</p><p><b>  stack包:</b></p><p>  類AckMcastReceiverWindow:創(chuàng)建并維持一個信息棧,接受不同發(fā)送者發(fā)送的信息。應(yīng)答收到的每條信息,檢查它是否已被拒絕,如果是,則拋棄該信息,否則拒絕它。信息中包含了需要刪除的舊信息的序列號,

44、它們要從信息表中移除。 </p><p>  類AckMcastSenderWindow:為每一條信息維持一個棧,保存接收者發(fā)出的ack。</p><p>  類AckSenderWindow:一個發(fā)送者的基于ack的滑動窗口,當(dāng)收到一個ack時,消息將按照序列號的順序填加進窗口,同時刪除應(yīng)答消息。</p><p>  類Configurator:用

45、來設(shè)置并配置協(xié)議棧,把一個用來描述沒一層的分層和配置的字符串傳遞給創(chuàng)建和配置協(xié)議棧的配置器,然后向頂層返回一個參數(shù)。</p><p>  類GossipServer:為每個租借維持一個成員地址的緩沖區(qū),它有兩個基本功能:獲取一個給定組的成員并為一個給定的組注冊一個新成員。</p><p>  類GossipClient:是一個本地stub,使用基于TCP的私有協(xié)議連接到GossipServ

46、er。</p><p>  類GossipData:封裝GossipServer和GossipClient間傳送的數(shù)據(jù)。</p><p>  類Interval:管理重新發(fā)送的時間間隔。</p><p>  類IpAddress:依賴于網(wǎng)絡(luò)的地址,由協(xié)議棧UDP的最底層產(chǎn)生,包含一個網(wǎng)絡(luò)地址和端口。</p><p>  抽象類Protocol

47、:為協(xié)議層提供了一套公用的服務(wù)器。每一層必須是protocol的一個子類并且重載一些方法(典型的如up,down和getname)。各個層以一定的順序堆疊在一起形成一個協(xié)議棧。</p><p>  類MessageProtocol:Protocol的子類,它是基于協(xié)議的,但合并了RequestCorrelator和GroupRequest,后者用來向所有成員發(fā)送消息并接受他們的響應(yīng)。</p><

48、;p>  類ProtocolStack:Protocol的子類,ProtocolStack管理許多協(xié)議,它創(chuàng)建所有的protocol類,把他們初始化,并且當(dāng)準(zhǔn)備好時,以最低層協(xié)議為開始啟動它們。它還把從棧中接收到的信息分派給已注冊的對象,如channel,GMP,而且把這些對象發(fā)送的信息沿著棧發(fā)送下去。ProtocolStack利用Configurator來建立和初始化棧,并且當(dāng)不再需要它們時銷毀這些棧。</p>&

49、lt;p>  類NakReceiverWindow:根據(jù)信息的序列號維持棧。允許信息不按順序添加,</p><p>  并且序列號線可以有間隙。</p><p>  接口ProtocolObserver:為調(diào)試器設(shè)置的接口,用來接收關(guān)于一個協(xié)議層的通知。定義了hook,當(dāng)重大事件發(fā)生時由protocol調(diào)用它們,例如接收到一個事件。每一個ProtocolObserver都要有一個它所

50、監(jiān)聽的協(xié)議的參考。</p><p>  類Retransmitter:維持一個需要重新發(fā)送的信息序列號池,信息被標(biāo)上時間,重發(fā)請求根據(jù)時間先后。</p><p>  類StateTransferInfo:包含了狀態(tài)轉(zhuǎn)換的參數(shù),在channel和STATE_TRANSFER間進行轉(zhuǎn)換。</p><p>  tests包:用來對各個模塊進行測試。</p>

51、<p>  util包:Java.util包包括了Java語言中的一些低級的使用工具,該util包則在其基礎(chǔ)上進行了一些改善,使其更適合實際的系統(tǒng)。如其中的類LinkedListQueue,是建立在java.util.Queue之上,如果想使用這個類代替原始的類,它也可以重命名為Queue.java并編譯,</p><p>  3.2.2 對JavaGroups的擴展實現(xiàn)視頻會議系統(tǒng)</p>

52、;<p>  VideoConference和JavaGroupsVC是為實現(xiàn)視頻會議系統(tǒng)并且基于JavaGroups而設(shè)計的。VideoConference是JavaGroups的一個擴展包,JavaGroupsVC是基于JavaGroups的一個視頻會議的應(yīng)用程序。它是一種開放源碼的程序,提供了一種多平臺視頻會議的解決方案。JavaGroupVC支持三個數(shù)據(jù)頻道:一個用于視頻廣播的視頻頻道,一個用于音頻廣播的音頻頻道和

53、一個用于聊天對話的文本頻道。加入某一個組的用戶可以和該組中所有的成員共享視頻和音頻。 每個用戶要選擇一個用戶名和卡通圖標(biāo)來代表自己。在一個特定的組內(nèi),用戶名和圖標(biāo)都是唯一的。如果在該組中這個用戶名或圖標(biāo)已經(jīng)有人用過了,則新來者就要換另一個了。組內(nèi)的所有成員都可以選擇發(fā)送消息至所有人或者特定的某個人。所有對連接有用的組和目前存在的組將以一種可擴充的樹結(jié)構(gòu)顯示出來,這樣用戶可以瀏覽每個組來找一個感興趣的加入。用戶可以無限次地加入或重復(fù)加入某

54、個組,但是在某個特定時間,一個用戶只能在一個組中,他必須離開當(dāng)前所在的組才能夠進入另一個組。</p><p>  JavaGroupsVC使用層結(jié)構(gòu)來設(shè)計的。有三個主要的層:圖形用戶界面層、控制層和數(shù)據(jù)層。如下圖所示:</p><p><b>  圖形用戶界面層</b></p><p><b>  控制層</b></

55、p><p><b>  數(shù)據(jù)層</b></p><p>  圖2.1 JavaGroupsVC的分層結(jié)構(gòu)</p><p>  其中包含六個主要部分,四個對用戶是可見的。它們是圖形用戶界面層中的圖形用戶界面部分,數(shù)據(jù)層中的視頻部分,音頻部分和文本部分。另外兩個對終端用戶透明的部分是控制層中的組內(nèi)成員部分和組間成員部分。</p><

56、p><b>  圖形用戶界面層</b></p><p>  該層的主要部分是圖形用戶界面管理器(GUIManager),它通過輕量Java Swing組件來處理所有的用戶事件。GUIManagers實現(xiàn)了接口WidowListener、ActionListener和Runnable,它包含了四個子組件:聊天面板,媒體面板,成員面板和組面板。</p><p>  

57、聊天面板(ChatPanel)用來顯示或記錄聊天會議的活動(文本面板),聊天面板由一個用于輸入消息的文本區(qū)域和一個用于顯示來自所有成員的消息的文本區(qū)域組成;組面板(GroupsPanel)用來顯示所有的組和組中所有的成員。它有一個包含所有組的樹形結(jié)構(gòu),從中可以看到每個組內(nèi)的成員;成員面板(MembershipChanel)用來顯示當(dāng)前組中的所有成員,組中的每個成員用一個帶有用戶名和用戶圖標(biāo)的可擊按鈕來代替,聊天中私有消息可以通過點擊代表

58、那個特殊成員的按鈕來發(fā)送;媒體面板(MediaPanel)用來顯示視頻和音頻播放器。</p><p>  另外,GUIManager中還包含了一個用戶菜單項(UserMenuItem),它是Swing組件中菜單項(JMenuItem)的子類,它存儲了必要的用戶信息 ,當(dāng)GUIManager的菜單中有一個用戶被選中時,同他的視頻會議就可以開始了。</p><p>  為了使應(yīng)用程序面對用戶真

59、正做到交互性,用戶事件必須通過GUIManager下的四個子組件來傳播信息。另一方面,為了顯示在JavaGroups框架下發(fā)生的活動和事件,各種管理器(如音頻管理器AudioManager、視頻管理器VideoManager、文本管理器TextManager、成員管理器MembershipManager等)都需要一種能與四個子組件通信的方法。圖形用戶界面管理器處理圖形用戶界面層與控制層和數(shù)據(jù)層之間的所有通信。</p>&l

60、t;p>  圖形用戶界面層中還包括一個音頻過濾器和一個視頻過濾器,把系統(tǒng)不支持的音頻格式文件和視頻格式文件過濾掉,該系統(tǒng)支持*.au格式的音頻文件和*.mpeg格式的視頻文件。這兩個類都繼承了javax.swing.filechooser中的FileFilter類,通過獲取文件的名字來判斷是否支持此文件。</p><p>  控制層(ControlManager)</p><p> 

61、 控制管理器包含兩大部分,組管理器(GroupsManager)和成員管理器(MemebershipManager)。</p><p>  其中定義了如下的數(shù)據(jù)結(jié)構(gòu):</p><p>  GroupList:用來存儲一個組的信息,包括組名和用戶信息管理器;</p><p>  UserInfo:用來存儲單個成員的信息,包括用戶名、地址、聊天地址、視頻地址、音頻地址、

62、默認地址和序列號。</p><p>  組列表管理器(GroupListManager)是GroupList的數(shù)據(jù)結(jié)構(gòu)管理器,它用來處理在一個組列表中添加和刪除組的操作。</p><p>  用戶信息管理器(UserInfoManager)是UserInfo的數(shù)據(jù)結(jié)構(gòu)管理器,它用來處理關(guān)于把可讀的用戶名和終端地址聯(lián)系起來的所有事務(wù)。</p><p>  組管理器(G

63、roupsManager)屬于頻道管理器,它運行組間成員管理協(xié)議,并且通過GUIManager同用戶事件進行通信。它是抽象類Manager的子類,并且實現(xiàn)了接口MembershipListener和MessageListener。組管理器實現(xiàn)了加入一個組,離開一個組,獲取自身地址,設(shè)置成員管理器、音頻管理器、視頻管理器、文本管理器、組列表管理器等功能。它同時包含了組列表管理器。</p><p>  成員管理器(M

64、emebershipManager)也屬于頻道管理器,它同樣也運行組間成員管理協(xié)議,并且通過GUIManager同用戶事件進行通信。它也是抽象類Manager的子類,實現(xiàn)了接口MembershipListener和MessageListener。成員管理器定義了當(dāng)前成員向量、新成員向量、當(dāng)前視圖、用戶信息變量,還有一些布爾變量用來標(biāo)示當(dāng)前成員所處的狀態(tài),如是否是協(xié)調(diào)者,是否在進行視頻、音頻廣播等。另外還實現(xiàn)了連接到一個組、離開一個組、獲

65、取成員信息、接收信息、發(fā)送視頻/音頻廣播請求、對請求的允許或拒絕等功能。它同時包含了用戶信息管理器。</p><p>  在這一層中除了管理器之外,還定義了特殊的控制消息,這一層中所有的控制消息都是JavaGroups中消息類(Message)的子類。它又分為組列表控制消息、媒體消息信息和成員控制消息。如下所示:</p><p>  五種不同的組表控制消息:</p><

66、p>  BcastNewGroupMsg:由一個新組的創(chuàng)建者發(fā)出的廣播消息,用來通知其他組的所有用戶建立了一個新組。</p><p>  GroupListRequestMsg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者得點到點的消息,用來請求當(dāng)前的組列表。</p><p>  GroupListReplyMsg:當(dāng)前組列表中所有組的協(xié)調(diào)者對要求組列表的請求者得點到點的答復(fù)信息。</p

67、><p>  MemberJoinGroupMsg:一個組中的協(xié)調(diào)者用來通知不同組中的用戶有新成員加入該組的廣播消息。</p><p>  MemberLeaveGroupMsg:一個組中的協(xié)調(diào)者用來通知不同組中的用戶有新成員離開該組的廣播消息。</p><p>  十一種不同的成員控制信息</p><p>  BcastUserInfoMsg:

68、新成員向組內(nèi)所有成員發(fā)布的關(guān)于它本身的廣播消息。</p><p>  AudioChannelBcastMsg:新成員向組內(nèi)所有成員發(fā)布的關(guān)于它自己的音頻地址的廣播消息。</p><p>  VideoChannelBcastMsg:新成員向組內(nèi)所有成員發(fā)布的關(guān)于它自己的視頻地址的廣播消息。</p><p>  TextChannelBcastMsg:新成員向組內(nèi)所

69、有成員發(fā)布的關(guān)于它自己的文本地址的廣播消息。</p><p>  InitialMembersRequestMsg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者的點到點的消息,用來請求當(dāng)前的組列表。</p><p>  InitialMembersReplyMsg:從當(dāng)前組列表中所有組的協(xié)調(diào)者對要求組列表的請求者的點到點的答復(fù)消息。</p><p>  IconInquiry

70、Msg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者的點到點的消息,用來請求可用圖標(biāo)的列表。</p><p>  IconInquiryReplyMsg:當(dāng)前組列表中所有組的協(xié)調(diào)者對要求可用圖標(biāo)列表的請求者的點到點的答復(fù)消息。</p><p>  JoinRequestMsg:新成員發(fā)給該組協(xié)調(diào)者的點到點的消息,用來請求加入該組。</p><p>  JoinRequestG

71、rantedMsg:組內(nèi)的協(xié)調(diào)者發(fā)給新成員的點到點的消息,用來允許該成員加入該組。</p><p>  JoinRequestDeniedMsg:組內(nèi)的協(xié)調(diào)者發(fā)給新成員的點到點的消息,用來拒絕該成員加入該組。</p><p>  十三種不同的媒體控制消息:</p><p>  StartVideoConferenceRequestMsg:從一個成員(請求者)發(fā)給另一

72、個成員(接收者)的點到點的消息,用來請求一段視頻對話。</p><p>  StartVideoConferenceRequestGrantedMsg:一個成員(接收者)發(fā)給另一個成員(請求者)的點到點的消息,表示同意舉行視頻對話。</p><p>  StartVideoConferenceRequestDeniedMsg:一個成員(接收者)發(fā)給另一個成員(請求者)的點到點的消息,表示拒

73、絕舉行視頻對話。</p><p>  StartAudioBcastMsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段音頻廣播的開始。</p><p>  EndAudioBcastMsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段音頻廣播結(jié)束。</p><p>  StartAudioRequestMsg:組內(nèi)成員(請求者)發(fā)給協(xié)調(diào)者的點到點的消息,請求允許在

74、組內(nèi)廣播音頻。</p><p>  StartAudioRequestGrantedMsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點到點的消息,允許它在組內(nèi)廣播音頻。</p><p>  StartAudioRequestDeniedMsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點到點的消息,禁止它在組內(nèi)廣播音頻。</p><p>  StartVideoBcastMsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出

75、的廣播消息,表示一段視頻廣播的開始。</p><p>  EndVideoBcastMsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段視頻廣播結(jié)束。</p><p>  StartVideoRequestMsg:組內(nèi)成員(請求者)發(fā)給協(xié)調(diào)者的點到點的消息,請求允許在組內(nèi)廣播視頻。</p><p>  StartVideoRequestGrantedMsg:組內(nèi)協(xié)調(diào)

76、者發(fā)個請求者的點到點的消息,允許它在組內(nèi)廣播視頻。</p><p>  StartVideoRequestDeniedMsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點到點的消息,禁止它在組內(nèi)廣播視頻。</p><p>  數(shù)據(jù)層(DataManager)</p><p>  這一層中定義了數(shù)據(jù)頻道的管理器和消息類型。</p><p>  媒體管理器類(Med

77、iaManager)是數(shù)據(jù)頻道管理器的超類,同時也是管理器類(Manager)的子類。視頻管理器(VideoManager)、音頻管理器(AudioManager)和文本管理器(TextManager)都是媒體管理器類的子類。他們分別是視頻頻道、音頻頻道和文本頻道的頻道管理器,通過GUIManager同用戶事件進行通信。</p><p>  該層中包含了其中不同的消息類型,他們也是JavaGroups中消息類(M

78、essage)的子類。</p><p>  StartVideoMsg:廣播消息,當(dāng)某成員正在向所有的成員廣播視頻時,來自該成員的第一個視頻包,以便他們可以開始新的播放。</p><p>  VideoMsg:包含視頻數(shù)據(jù)的廣播消息。</p><p>  EndVideoMsg:廣播消息,當(dāng)某成員正在向所有的成員播放視頻時,來自該成員的最后一個視頻包,以便他們可以停

79、止播放。</p><p>  StartAudioMsg:廣播消息,當(dāng)某個成員正在向所有的成員播放音頻時,來自該成員的第一個音頻包,以便他們可以開始一個新的音頻播放。</p><p>  AudioMsg:包含音頻數(shù)據(jù)的廣播消息。</p><p>  EndAudioMsg:廣播消息,當(dāng)某個成員正在向所有的成員播放最后的音頻時,來自該成員的最后一個音頻包,以便能夠停

80、止音頻播放。</p><p>  TextMsg:向組中的所有成員播放公共消息或是向一個包含文本數(shù)據(jù)的特殊接收器中播放點對點的私有消息。</p><p>  3.3視頻會議系統(tǒng)的相關(guān)技術(shù)</p><p>  3.3.1 Java媒體框架</p><p>  2001年3月,Sun公司推出了新品Java媒體框架(Java Media Fram

81、ework,簡稱JMF),這是Java平臺上的一種多媒體“one-stop shop”(一站購齊)是軟件,它包括了各種媒體應(yīng)用程序。它是能夠在Java獨立應(yīng)用程序和小應(yīng)用程序中顯示、獲取多媒體數(shù)據(jù)的類的集合。JMF為媒體播放器、媒體的獲取以及媒體會議定義了統(tǒng)一的體系結(jié)構(gòu)、消息處理協(xié)議和程序設(shè)計接口。JMF提供了一套構(gòu)建塊(building blocks),它對JMC API的其它部分是非常有用的。例如,JMF提供了一跨平臺、與設(shè)備無關(guān)的

82、方式訪問音頻設(shè)備的方法。另外,諸如動畫和視頻等基于時間的媒體演播也需要以相同的方法處理。JMF2.1.1是對應(yīng)Java2平臺標(biāo)準(zhǔn)板(J2SE)的一種可選用的應(yīng)用編程接口軟件包,它為音頻和視頻等媒體內(nèi)容的捕獲、回放、流轉(zhuǎn)和編碼轉(zhuǎn)換等提供了統(tǒng)一的架構(gòu)。(9)</p><p>  JMF技術(shù)目前的版本為2.1.1b。JMF2.1.1技術(shù)提供了先進的媒體處理能力,擴展了Java平臺的功能。這些功能包括媒體捕獲、壓縮、流轉(zhuǎn)

83、、回放,以及對各種主要媒體形勢和編碼的支持,如M-JPEG、H.263、MP3、RTP/RTSP(實時傳送協(xié)議和實時流轉(zhuǎn)協(xié)議)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format(RMF)等。(10)</p><p>  在本系統(tǒng)中,安裝的是2.1.1版本的JMF。將JMF的庫文件添加到工程里面,然后就可以使用它提供的各種類和接口了。本系統(tǒng)中使用到了

84、javax.media包,它是JMF中最重要的包,包含了JMF運行時必要的類。</p><p>  3.3.2 CSCW</p><p>  隨著社會的發(fā)展和科技的進步,各種工作變得越來越復(fù)雜。以膽完成一項工作可能只要一個人或幾個人就能勝任了,現(xiàn)在與以前大不相同了,幾乎每項工作的完成都是許多人智慧的共同結(jié)晶,因此協(xié)同工作在當(dāng)今社會變得日益重要。在協(xié)同工作中最重要的問題是如何提高整個工作

85、的效率。為此,在通信和計算機技術(shù)的日益成熟的當(dāng)今信息社會中,計算機支持的協(xié)同工作(CSCW:Computer Supported Cooperative Work)也就應(yīng)運而生了。CSCW這個概念是初是在1984年由MIT的Irene Greif和DEC的Paul Cashman提出來的。它的提出和實現(xiàn)將從根本上改變?nèi)藗儌鹘y(tǒng)的工作方式和生活方式。</p><p>  CSCW系統(tǒng)從本質(zhì)上講是通過計算機技術(shù)使處于不

86、同地理位置的人們能夠一起工作,并且感覺不到地理位置上的差異。由于人們在日常工作中需要相互傳遞聲音、圖像以及文字等多種信息,所以CSCW系統(tǒng)應(yīng)該是一種分布式的多媒體系統(tǒng),它能提供信息的交互式服務(wù),它要求信息在各個成員之間的傳遞是對等的,因此是一種對稱的交互方式。(11)</p><p>  視頻會議系統(tǒng)即屬于一種CSCW系統(tǒng),它實現(xiàn)了兩個或兩個以上地理位置不同的個人或群體,通過傳輸線路和多媒體設(shè)備,將聲音、圖像、視

87、頻影像和文件資料交互的傳遞,達到即時并且互動的溝通。</p><p><b>  4 結(jié) 束 語</b></p><p>  經(jīng)過這學(xué)期的畢業(yè)設(shè)計,我們自學(xué)掌握了一門新的編程語言并熟悉了它的開發(fā)環(huán)境,對視頻會議這個課題從陌生到了解,通過分析它的源代碼,加深了對Java語言的理解和對較大型軟件開發(fā)流程的了解。我們組是讀和調(diào)試別人寫的代碼,因此對于程序的可讀性有了更深

88、刻的理解,也為自己以后寫程序積累了經(jīng)驗。對于調(diào)試,我們原來接觸的不多,而且都是自己寫自己調(diào),這次調(diào)試別人的程序時,也用到了原來學(xué)的一些方法,如把整個程序模塊化,先以模塊為單位調(diào)試然后再和為一體,這些不僅加深了以前學(xué)的知識,更為以后階段的學(xué)習(xí)和工作打下了基礎(chǔ)。</p><p><b>  5 謝 辭</b></p><p>  在本次畢業(yè)設(shè)計的過程當(dāng)中,我在***

89、老師和xx老師身上學(xué)到了很多東西。兩位老師工作態(tài)度認真負責(zé),治學(xué)嚴謹縝密,理論功底深厚扎實,這些都使我受益匪淺。他們無論在理論上還是在實踐中,都給予我很大的幫助,使我得到很大的提高,對于我今后的工作和學(xué)習(xí)都會產(chǎn)生深刻的影響。非常感謝兩位老師細致而又耐心的輔導(dǎo)。</p><p>  另外,在系統(tǒng)分析過程中,同組的***同學(xué)給予我不少幫助,在這里一并表示感謝。</p><p><b>

90、;  6 參考文獻</b></p><p>  基于局域網(wǎng)的小型視頻會議系統(tǒng).吉林大學(xué)碩士研究生畢業(yè)論文</p><p>  董小國,王紅巖,韓少亭.基于H.323協(xié)議的視頻會議的軟件實現(xiàn).現(xiàn)代計算機.總第163期</p><p>  視頻會議簡介.成都理工學(xué)院碩士學(xué)位論文</p><p>  慕言,楊士強.Internet桌

91、面視頻會議系統(tǒng)的設(shè)計與實現(xiàn).小型微型計算機系統(tǒng).1998年4月第19卷第4期</p><p>  楊建華,黃瑞光.基于TCP/IP協(xié)議的桌面視頻會議系統(tǒng)中多點控制單元的實現(xiàn).計算機應(yīng)用.1998年12月第18卷第12期</p><p>  印旻,王行言.Java語言與面向?qū)ο蟪绦蛟O(shè)計.清華大學(xué)出版社.2000</p><p>  飛思科技產(chǎn)品研發(fā)中心.精通JBuil

92、der9.電子工業(yè)出版社.2003</p><p>  王峰.Java多媒體程序設(shè)計.清華大學(xué)出版社.1999</p><p>  李櫻等.Jbuilder8基礎(chǔ)編程.人民郵電出版社.2003</p><p>  Will David Mitchell(著),裘嵐(譯).Java程序調(diào)試實用手冊.電子工業(yè)出版社.2000</p><p>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論